2

I am trying to play background song it get the success but I placed one play button and I want to change image of my button as per some condition, but it is not showing the mute image. How do I animate the button to do this. this is my code

//declared interface .h file

UIButton *volumeBtn;  
Bool volu;

declared in .m file creating button on view

-(void)creating
 {
   //volumeBtn
    volumeBtn = [UIButton buttonWithType: UIButtonTypeCustom];
     [volumeBtn setBackgroundImage:[UIImage imageNamed:@"volume.png"]forState:UIControlStateNormal];
    [volumeBtn addTarget:self action:@selector(volumeBtnClick)forControlEvents:UIControlEventTouchUpInside];


    [volumeBtn setFrame:CGRectMake(self.view.frame.origin.x+9,self.view.frame.origin.y+15, 40, 40)];

     volumeBtn.layer.cornerRadius=20;
     volumeBtn.layer.masksToBounds=NO;
    [volumeBtn setShowsTouchWhenHighlighted:YES];
   [self.view addSubview:volumeBtn];
}

- (void)viewDidLoad{


 [self creating];

}

animation purpose

-(void)anim
{
 CGPoint vlm = CGPointMake( 530.0f , volumeBtn.center.y);
            [UIView beginAnimations:nil context:nil];
            [UIView setAnimationDuration:1.0f];
            volumeBtn.center = vlm;

            [UIView commitAnimations];
}

-(void)viewDidAppear:(BOOL)animated
{
    [self performSelector:@selector(anim) withObject:self afterDelay:1];

}

when button click the song will stop and play

-(void)volumeBtnClick
{
    if (volu ==YES)
    {
        volumeBtn.backgroundColor=[UIColor colorWithPatternImage:[UIImage imageNamed:@"mute.png"]];

        [app.player stop];
        volu=NO;
    }
    else if(volu==NO)
    {
     volumeBtn.backgroundColor=[UIColor colorWithPatternImage:[UIImage imageNamed:@"volume.png"]];
        [app.player play];
        volu=YES;
    }
}
dbugger
  • 15,868
  • 9
  • 31
  • 33
RameshIos
  • 301
  • 1
  • 4
  • 13

1 Answers1

1

Everything is Correct just change Two Lines in your Method volumeBtnClick. setBackgroundImage instead of Its Background Color

[volumeBtn setBackgroundImage:[UIImage imageNamed:@"mute.png"]forState:UIControlStateNormal]

[volumeBtn setBackgroundImage:[UIImage imageNamed:@"volume.png"]forState:UIControlStateNormal];

So your code will be

-(void)volumeBtnClick
{
if (volu ==YES)
{
    [volumeBtn setBackgroundImage:[UIImage imageNamed:@"mute.png"]forState:UIControlStateNormal]

    [app.player stop];
    volu=NO;
}
else if(volu==NO)
{
 [volumeBtn setBackgroundImage:[UIImage imageNamed:@"volume.png"]forState:UIControlStateNormal];

    [app.player play];
    volu=YES;
}
}
Mohit
  • 3,708
  • 2
  • 27
  • 30