2012-09-21 27 views
4

我有可用的代碼,但我想確保自己正確地做事並乾淨利落。確定發件人ID的方法

我有四個版本的屏幕上顯示相同的視圖集合。每個收藏將用於控制四種不同聲音的音量和速率。該集合與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

這是有效的,但不是4個不同的ivars,你應該真的讓它們成爲數組的項目並使用枚舉,這樣你的代碼就會更乾淨。 – 2012-09-21 05:24:28

+0

好主意謝謝! – ChemDev

回答

0

您可以使用tag屬性在控件上設置數字索引,然後在事件回調中使用sender.tag

相關問題