我可以就处理这种说法的最有效方式提出一些建议。
我有UISwitch,如果切换on
在一个方框中打勾。有数百个这样的盒子
而不是
if (_tickSwitch.on){
_tickBox1.textValue = @"√" ;
_tickBox2.textValue = @"√" ;
_tickBox3.textValue = @"√" ;
_tickBox4.textValue = @"√" ;
等...
我试图找出一个条件,问我是否有textValue
将文本设置为√
类似
anyValueThatIs.textValue = @"√" ;
我无法想到允许的sytax - 具有先前值的任何东西,执行此操作
答案 0 :(得分:1)
您应该为所有UISwitch
组件添加相同的操作目标,例如:
[item addTarget:self action:@selector(toggled:) forControlEvents:UIControlEventValueChanged];
这样你就可以抓住事件并采取相应的行动:
- (IBAction) toggled:(id)sender {
UISwitch *item = (UISwitch*)sender;
if (item.on)
item.textValue = @"√";
}
当然,您需要一个包含所有UISwitch*
组件的循环,否则您只是在其他地方移动详细程度。另一个解决方案是将它们子类化为CustomUISwitch
组件,该组件在结构中添加目标,从而避免使用容器。
答案 1 :(得分:0)
您应该将所有tickBox放在一个数组中,然后循环该数组以执行测试