更改 UIToolBar 中所有按钮的 UIButton 状态

Posted

技术标签:

【中文标题】更改 UIToolBar 中所有按钮的 UIButton 状态【英文标题】:change UIButton state selected of all the button in UIToolBar 【发布时间】:2013-11-21 18:35:02 【问题描述】:

我有四个UIButtons 添加到自定义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 状态的主要内容,如果未能解决你的问题,请参考以下文章

更改 UIToolbar 项目将两个按钮放在一起

用故事板实现的 UIToolbar:如何更改按钮?

NavigationController UIToolbar 更改项

在 UIToolbar 中的 UIBarButtonItem 上更改 tintColor 会导致按钮消失并从左侧动画化

更改 UIBarButtonItem 的 UIToolbar 阴影颜色

更改 UIToolbar 项会导致工具栏变为空白