neb*_*ebs 10 iphone uibarbuttonitem
在IB中,我可以将UIBarButtonItem的标识符设置为"play",其中添加了播放按钮的图像(右指向三角形).
有没有办法以编程方式更改此图像?我想在按下播放按钮时将其更改为"暂停".
我知道你可以使用标识符初始化一个UIBarButtonItem,但我还没有找到一种方法来在初始化后更改它.这甚至可能吗?
我唯一能想到的就是删除旧按钮并在其位置初始化一个新按钮,但这似乎不太有效.
有什么想法吗?
neb*_*ebs 14
好吧,我已经用Google搜索了这个问题,并从Apple 中搜索了示例代码,它们完全相同(在工具栏按钮上切换播放/暂停按钮图形).但是,UIBarButtonItem他们使用自定义UIButton和切换自定义图像,而不是使用内置播放和暂停标识符.
因此,如果Apple遇到在UIButton上创建和切换自定义图像而不是内置播放和暂停UIBarButtonItem按钮的麻烦,那么我认为可以非常安全地说,无法以编程方式更改a的标识符UIBarButtonItem.
这是他们(Apple)在按下按钮时切换图像所做的事情:
// Call this when the button you want to toggle is pressed:
[playButton setImage:((p.playing == YES) ? pauseBtnBG : playBtnBG) forState:UIControlStateNormal];
Run Code Online (Sandbox Code Playgroud)
将p.playing替换为您想要保持按钮状态的BOOL. playButton是UIButton工具栏中的自定义. pauseBtnBG并且playBtnBG是要切换的图像.
小智 13
这看起来效果很好:
UIBarButtonItem *oldButton = [myToolBar.items objectAtIndex:1];
[myToolBar setItems:[NSArray arrayWithObjects:[myToolBar objectAtIndex:0], [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemStop target:self action:@selector(tapStopRefreshButton:)],nil] animated:NO];
[oldButton release];
Run Code Online (Sandbox Code Playgroud)
在这个例子中,我有一个用于UIWebView的工具栏,当有人点击Reload时,我希望它改为Stop.工具栏上只有一个灵活的空间,上面有一个按钮 - 右键对齐按钮 - 所以我抓住了对旧按钮的引用,使用与旧按钮相同的选择器创建了一个新按钮,重置了标签栏上的按钮,然后发布原始按钮.
不是最漂亮,但你可以使用所有标准按钮而不必覆盖按钮类.
| 归档时间: |
|
| 查看次数: |
11361 次 |
| 最近记录: |