更改 UIToolBar 中所有按钮的 UIButton 状态
Posted
技术标签:
【中文标题】更改 UIToolBar 中所有按钮的 UIButton 状态【英文标题】:change UIButton state selected of all the button in UIToolBar 【发布时间】:2013-11-21 18:35:02 【问题描述】:我有四个UIButton
s 添加到自定义UIToolBar
,当我按下它并调用动作函数时,我可以更改按下按钮的selected state
。问题是我不知道如何获取其余按钮并更改它们的 selected
属性。使用segmentedControl
会更容易吗?
正如您在图片中看到的,当其中一个被选中时,我不会更改其余状态..
我用这段代码做到这一点:
if([sender tag] == i)
if([sender isSelected])
NSLog(@"selected");
[sender setSelected:NO];
else
NSLog(@"No selected");
[sender setSelected:YES];
这个我试过了,但是出错了:
for( int i = 0; i < 4 ; i++)
if([sender tag] == i)
if([sender isSelected])
NSLog(@"selected");
[sender setSelected:NO];
else
NSLog(@"No selected");
[sender setSelected:YES];
else
UIButton *btn = (UIButton *)[self viewWithTag:i];
if([btn isSelected])
NSLog(@"selected");
[sender setSelected:NO];
else
NSLog(@"No selected");
[sender setSelected:YES];
【问题讨论】:
【参考方案1】:您使用items
消息向工具栏询问其项目的数组。你得到的是一个 UIBarButtonItems 列表。然后,您可以查询每个项目的状态。假设 UIBarButtonItem 有一个自定义视图,您会得到它,验证它的类是 UIButton,然后向它发送消息以获取或设置状态。
【讨论】:
以上是关于更改 UIToolBar 中所有按钮的 UIButton 状态的主要内容,如果未能解决你的问题,请参考以下文章
NavigationController UIToolbar 更改项
在 UIToolbar 中的 UIBarButtonItem 上更改 tintColor 会导致按钮消失并从左侧动画化