确定发件人ID的方法

时间:2012-09-21 05:18:17

标签: objective-c sender iboutletcollection

我的代码有效,但我想确保我正确地做得很干净。

我在屏幕上显示了同一组视图的四个版本。每个集合将用于控制四种不同声音的音量和速率。这些集合与IBOutletCollection链接到4个不同的NSArrays(soundView0,soundView1,soundView2,soundView3)。

我使用以下代码来确定正在调整哪个音量滑块:

-(IBAction)whichVolume:(UISlider *)sender
{
    if ([soundView0 containsObject:sender]) {
        soundIndex = 0;
    }
    else if (([soundView1 containsObject:sender]))
    {
        soundIndex = 1;
    }
else if ([soundView2 containsObject:sender])
{
    soundIndex = 2;
}
    else if ([soundView3 containsObject:sender])
{
    soundIndex = 3;
}
    //send a message to set volume of sound at index soundIndex
    NSLog(@"The soundIndex is %d", soundIndex);
    NSLog(@"The volume is %f", [sender value]);
}

我做对了还是有更好的方法来实现这个目标?

1 个答案:

答案 0 :(得分:0)

您可以使用tag属性在控件上设置数字索引,然后在事件回调中使用sender.tag