Ios 如何在函数中设置UIButton的状态

Ios 如何在函数中设置UIButton的状态,ios,objective-c,uibutton,Ios,Objective C,Uibutton,我有一个for循环,它在对象类型Note的数组中循环,该数组具有设置为按钮的fingering属性 for循环: for (int i = 0; i < [Bb_major.scaleNotes count]; i++) { valve1.highlighted = NO; valve2.highlighted = NO; valve3.highlighted = NO; valve4.highlighted = NO;

我有一个for循环,它在对象类型Note的数组中循环,该数组具有设置为按钮的fingering属性

for循环:

for (int i = 0; i < [Bb_major.scaleNotes count]; i++) {
        valve1.highlighted = NO;
        valve2.highlighted = NO;
        valve3.highlighted = NO;
        valve4.highlighted = NO;

        [Scale tutorial:valve1 :valve2 :valve3 :valve4 :Bb_major.scaleNotes[i]]; 
}

我希望这样,当for循环遍历scaleNotes时,每个按钮序列都会高亮显示一段时间,然后高亮显示next Notes按钮。有没有更有效的方法来完成这项任务

首先,您不应该这样命名方法。仅供参考-您的方法名为
tutorial::
。这不是个好名字。永远不要在主线程上调用
sleep
。糟糕,糟糕,糟糕。如果你想创建一个应用程序来教人们如何弹吉他(或类似的),我建议使用UIView来突出指法模式。你可以使用UIView动画使它们高亮显示/发光,它们比按钮更合适。我希望它们能够按右手手指模式中的按钮,以便练习缩放。
+(void)tutorial:(UIButton *)button1 :(UIButton *)button2 :(UIButton *)button3 :(UIButton *)button4 :(Note *)Note {

switch ([Note.fingering count]) {
    case 0:
        break;
    case 1:
        button1 = Note.fingering[0];

        button1.highlighted = YES;

        sleep(1.0);

        break;
    case 2:

        button1 = Note.fingering[0];
        button2 = Note.fingering[1];

        button1.highlighted = YES;
        button2.highlighted = YES;

        sleep(1.0);

        break;
    case 3:
        button1 = Note.fingering[0];
        button2 = Note.fingering[1];
        button3 = Note.fingering[2];

        button1.highlighted = YES;
        button2.highlighted = YES;
        button3.highlighted = YES;

        sleep(1.0);

        break;
    default:
        break;
}
}