我有两个UISliders(两个都有引用插座)的Value Changed事件连接到以下方法:
-(IBAction) sliderMoved:(id) sender {}
如何确定移动了哪个滑块以便我可以获取其值并更新相应的标签?或者有两个单独的事件,每个滑块一个更简单?第二个选项似乎是对我不必要的复制。
干杯, 丹
答案 0 :(得分:4)
它将是sender
变量。只需用它完成所有工作。
顺便说一句,强烈输入它是合法的。因此,如果您知道自己只处理UISlider对象,则可以执行-(IBAction)someAction:(UISlider*)slider {}
。
答案 1 :(得分:1)
如果设置了滑块,可以使用[sender tag]获取滑块的标签。在创建滑块时或在界面构建器中分配标记。
-(IBAction) sliderMoved:(UISlider*)sender {
switch ( [sender tag] ) {
case kMyOneSlider: ... break;
case kMyOtherSlider: ... break;
}
}
您可以对每个滑块使用==和插座成员:
-(IBAction) sliderMoved:(UISlider*)sender {
if ( sender == mOneSlider ) ...;
if ( sender == mOtherSlider ) ...;
}
或者您可以为每个滑块设置不同的操作。如果处理程序中有一些公共代码,我通常会共享一个操作方法。