ios – 选择一个UIButtons时取消选择

前端之家收集整理的这篇文章主要介绍了ios – 选择一个UIButtons时取消选择前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在游戏中设置了八(8)个UIButtons.选择一个时,它会显示它已被选中,如果再次单击它,它将显示为未选中.但是,我想这样做,以便当您选择一个按钮并选择其他七(7)中的任何一个时,它们将被取消选中.

我知道如何通过使用[buttonName setSelected:NO]来做到这一点,但问题是我无法将buttonOne传递给buttonTwo,如果buttonTwo已经传递给buttonOne,因为我已经在buttonOne中导入了buttonTwo的头文件.如果我有两个标题互相导入,它会抛出一个解析错误.我已经被困在这一段时间了,并希望有人可以解决我的问题.

谢谢你的帮助.

解决方法

获取当前按钮的父视图并遍历内部的所有按钮,取消选中所有按钮.然后,选择当前的那个.
// Unselect all the buttons in the parent view
for (UIView *button in currentButton.superview.subviews) {
    if ([button isKindOfClass:[UIButton class]]) {
        [(UIButton *)button setSelected:NO];
    }
}

// Set the current button as the only selected one
[currentButton setSelected:YES];

注意:正如评论中所建议的那样,您可以保留一组按钮,并按照上述代码与父视图的子视图相同的方式进行检查.如果包含按钮的视图中包含许多其他子视图,这将提高代码性能.

猜你在找的iOS相关文章