我有一个对象(scaleNotes)的数组,分配给我想要遍历的按钮。我希望应用程序等待按下第一组按钮,然后等待第二组按钮,等等。但是,目前我的应用程序冻结了该功能。如何等待按钮按下目标c
包含数组的方法:
-(void)fingerScale :(UIButton*)button1 :(UIButton*)button2 :(UIButton*)button3 :(UIButton*)button4 :(UILabel*)label {
Note *note = [[Note alloc]init];
for (int i = 0; i < [_scaleNotes count]; i++) {
note = _scaleNotes[i];
label.text = note.noteName;
[note waitForNote:button1 :button2 :button3 :button4 :note];
NSLog(@"Waiting... %i", i);
}
}
的“waitForNote”的方法:
-(void)waitForNote:(UIButton *)button1 :(UIButton *)button2 :(UIButton *)button3 :(UIButton *)button4 :(Note*)Note {
bool loop = YES;
while (loop) {
switch ([Note.fingering count]) {
case 0:
loop = NO;
break;
case 1:
button1 = Note.fingering[0];
if (button1.touchInside) {
loop = NO;
}
break;
case 2:
button1 = Note.fingering[0];
button2 = Note.fingering[1];
if (button1.touchInside && button2.touchInside) {
loop = NO;
}
break;
case 3:
button1 = Note.fingering[0];
button2 = Note.fingering[1];
button3 = Note.fingering[2];
if (button1.touchInside && button2.touchInside && button3.touchInside) {
loop = NO;
}
break;
default:
break;
}
}
}
我已被告知,使用addTarget:action:forControlEvents
可以解决我的问题,而不是使用while循环,但我不确定如何将其实施到我的代码中。请帮忙。
谢谢,我对这门语言仍然很陌生,这非常有帮助。 – Sc0urg3r