因此,如果Apple遇到在UIButton上创建和切换自定义图像而不是内置播放和暂停 UIBarButtonItem 按钮的麻烦,那么我认为's pretty safe to say there'无法以编程方式更改 UIBarButtonItem 的标识符 .
这是他们(Apple)在按下按钮时切换图像所做的事情:
// Call this when the button you want to toggle is pressed:
[playButton setImage:((p.playing == YES) ? pauseBtnBG : playBtnBG) forState:UIControlStateNormal];
3 回答
好吧,我已经用Google搜索了这个问题,然后遇到了sample code from Apple,他们做了完全相同的事情(在工具栏按钮上切换播放/暂停按钮图形) . 但是,他们不使用
UIBarButtonItem
的内置播放和暂停标识符,而是使用自定义UIButton
并切换自定义图像 .因此,如果Apple遇到在UIButton上创建和切换自定义图像而不是内置播放和暂停
UIBarButtonItem
按钮的麻烦,那么我认为's pretty safe to say there'无法以编程方式更改UIBarButtonItem
的标识符 .这是他们(Apple)在按下按钮时切换图像所做的事情:
将p.playing替换为您想要保持按钮状态的BOOL .
playButton
是工具栏中的自定义UIButton
.pauseBtnBG
和playBtnBG
是要切换的图像 .这看起来效果很好:
在这个例子中,我有一个用于UIWebView的工具栏,当有人点击Reload时,我希望它改为Stop . 工具栏上只有一个灵活的空间,上面有一个按钮 - 右键对齐按钮 - 所以我 grab 了对旧按钮的引用,使用与旧按钮相同的选择器创建了一个新按钮,重置了标签栏上的按钮,然后发布原始按钮 .
不是最漂亮,但你可以使用所有标准按钮而不必覆盖按钮类 .
2个堆叠的工具栏怎么样?然后你可以在顶部有一些系统按钮,在底部有一些系统按钮 . 如果按下播放按钮,则只需隐藏顶部工具栏 .