ios - 静音播放背景歌曲但不显示静音图像?

标签 ios objective-c uibutton avaudioplayer uianimation

我正在尝试播放背景歌曲,它成功了,但我放置了一个播放按钮,我想根据某些情况更改我的按钮的图像,但它没有显示静音图像。如何为按钮设置动画以执行此操作。这是我的代码

//声明的接口(interface).h文件

UIButton *volumeBtn;  
Bool volu;

在.m文件中声明 在 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];

}

动画目的

-(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];

}

当点击按钮时歌曲会停止播放

-(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;
    }
}

最佳答案

一切都是正确的,只需在您的方法 volumeBtnClick 中更改两行。 setBackgroundImage 而不是它的背景颜色

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

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

所以你的代码将是

-(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;
}
}

关于ios - 静音播放背景歌曲但不显示静音图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24219095/

相关文章:

ios - Segue 在 map 注释按钮上不起作用 - 看不出有什么问题

ios - 如何以面向协议(protocol)的方式快速将 Layer 添加到 UIButton 子类?

ios - Swift UICollectionView 委托(delegate)执行 segue

ios - UITableViewCell 中的 2 个标签,无需自定义单元格

ios - NSFetchedResultsController 未解析的标识符 Swift 4

iphone - 启动应用程序 Iphone 纵向和 Ipad 横向

iphone - UITableViewCell 内的事件在 y 值以下不工作

ios - uiview 动画在 ios 7 中有效,但在 ios 6 中被剪裁和偏移

objective-c - 我可以更改 Spotlight 搜索结果中显示的名称吗?

ios - 将 UIPopover 正确放置在动态按钮旁边