我在游戏中设置了八(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];
注意:正如评论中所建议的那样,您可以保留一组按钮,并按照上述代码与父视图的子视图相同的方式进行检查.如果包含按钮的视图中包含许多其他子视图,这将提高代码的性能.