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

时间:2013-11-21 18:35:02

标签: ios objective-c uibutton uitoolbar

我有四个UIButton添加到自定义UIToolBar,当我按下并调用动作功能时,我可以更改按下按钮的selected state。问题是我不知道如何获取其余按钮并更改其selected属性。使用segmentedControl

会更容易吗?

如图所示,当其中一个被选中时,我不会改变其余的状态..

我使用此代码执行此操作:

if([sender tag] == i){
    if([sender isSelected]){
        NSLog(@"selected");
        [sender setSelected:NO];
    } else {
        NSLog(@"No selected");
        [sender setSelected:YES];
    }

UIToolBar

我试过这个,但它出错了:

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 个答案:

答案 0 :(得分:1)

使用items消息向工具栏询问其项目数组。你得到的是一份UIBarButtonItems。然后,您可以查询每个项目的状态。假设UIBarButtonItem有一个自定义视图,你可以得到它,验证它的类是一个UIButton,然后告诉它获取或设置状态。