我有一个关于检查是否已按下所有UIButtons
的最佳方法的快速提问。
我有以编程方式创建的x号UIButtons
。
每个按钮都有自己的唯一标记(从100开始向上递增。)
单击按钮时会运行:
- (void)myButtonAction:(id)sender
{
[self handleButton:sender];
}
- (void)handleButton:(UIButton *)button
{
// ???
}
当且仅当用户点击了所有按钮时,才需要运行实例[self allButtonsClicked]
。
最好的方法是什么?我应该制作NSMutableArray
,并检查标签号是否在NSMutableArray
中,如果不是,则添加它。
然后当NSMutableArray
的大小与x个按钮数相等时,运行[self allButtonsClicked]
。
确保点击每个按钮的最简单方法是什么?
*编辑我输入后想出来了。写出来帮助我理解它。
-(void)letterreveal: (id)sender {
//data
UIButton *button = (UIButton *)sender;
//action
[self clickcheck:[NSNumber numberWithInt:button.tag]];
}
-(void)clickcheck:(NSNumber*)currenttag {
if ([self.buttonPressCounts containsObject:currenttag]) {
NSLog(@"case A");
}
else {
[self.buttonPressCounts addObject:currenttag];
NSLog(@"case B");
if([self.buttonPressCounts count]==[self.currentword length])
{
NSLog(@"fininshed");
}
}
}
buttonPressCounts是一个NSMutablearray。 我只需要确保在我按下按钮时设置它。
self.buttonPressCounts = [NSMutableArray arrayWithCapacity:[self.currentword length]];
currentword是一个NSString(每个按钮是一个从NSString派生的字母)。
答案 0 :(得分:1)
您可以使用所有按钮创建NSMutableSet
,然后从该组中删除每个单击的按钮,直到它为空。一旦设置为空,您肯定已经点击了所有按钮。
答案 1 :(得分:0)
如果您不介意,如果按一次或多次按钮,请使用NSMutableSet的成员ivar。
我会使用一些标签,但添加/删除按钮本身。