在不使用tag属性的情况下在表视图中处理多个UISwitch控件

Tha*_*rin 6 iphone cocoa-touch objective-c uiswitch

我有一个表视图控制器,其中包含多个UISwitch控件.我将委托设置为表视图控制器,对所有交换机执行相同的操作.我需要能够确定哪个开关已更改,因此我创建了一个包含每个开关名称的字符串数组.数组中的索引将放在每个UISwitch的tag属性中.

但是,我已经准备好将tag属性用于其他东西,即使用viewWithTag在cellForRowAtIndexPath中的单元格中找到正确的控件!(我需要在每个单元格中设置几件事.)

那么,我在这里思考的是正确的思路吗?我觉得我对如何确切地知道哪个UISwitch改变了它的价值非常有限,所以我可以用它做一些有用的事情.

Tha*_*rin 5

我通过子类化UISwitch修复了这个问题:

@interface NamedUISwitch : UISwitch {
NSString *name;
Run Code Online (Sandbox Code Playgroud)

}

看起来很优雅(不需要索引数组),tag属性可以随意做任何事情.

我读过你必须小心使用Objective-C中的子类,尽管......