Reputation: 301
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;
}
}
Upvotes: 2
Views: 68
Reputation: 3416
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;
}
}
Upvotes: 1