如何在代码中更改UIBarButtonItem的样式

Kha*_*man 8 iphone objective-c ios

我正在使用UIBarButtonSystemItemPlay播放我的音频文件,我想在点击它时动态更改它的样式.有可能吗?如果有,请帮助我.这是我的代码,其中_playPause是UIBarButtonSystemItemPlay的IBOutlet.提前致谢.

- (IBAction)playPause:(UIBarButtonItem *) sender
{
    if (_playPause.style == UIBarButtonSystemItemPlay)
    {
        [_playPause setStyle:UIBarButtonSystemItemPause];
        [audio play];
    }
    else
    {
        [_playPause setStyle:UIBarButtonSystemItemPlay];
        [audio pause];
    }
}
Run Code Online (Sandbox Code Playgroud)

Lor*_*o B 5

UIBarButtonSystemItemPlay或者UIBarButtonSystemItemPause不能通过样式属性检索.风格是类型UIBarButtonItemStyle.

请查看此处的文档.

我建议创建两个不同的UIBarButtonItem,然后交替启用或禁用(例如)它们.也可以删除当前可见按钮并添加一个不同的新按钮UIBarButtonSystemItem.


小智 0

我相信,一旦最初设置了样式(即在界面生成器中或在代码中创建按钮时),您就无法更改它。

您唯一的其他选择是删除代码中的按钮并使用不同的样式在其位置创建一个新按钮。你可以调用这个方法:

- (id)initWithTitle:(NSString *)title style:(UIBarButtonItemStyle)style target:(id)target action:(SEL)action
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请UIBarButtonItem查看