0

我可以就处理此语句的最有效方式提出一些建议。

我有 UISwitch ,如果切换会on在框中打勾。有数百个这样的盒子

而不是

if (_tickSwitch.on){


  _tickBox1.textValue =  @"√" ;
  _tickBox2.textValue =  @"√" ;
  _tickBox3.textValue =  @"√" ;
  _tickBox4.textValue =  @"√" ;

ETC....

我试图弄清楚我如何才能有一个条件,询问是否有任何textValue将文本设置为 √</p>

所以像

   anyValueThatIs.textValue =  @"√" ;

我想不出允许的语法 - 任何具有前值的东西,这样做

4

2 回答 2

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组件,该组件在 costructor 中添加目标,从而避免需要容器。

于 2013-01-05T13:57:56.307 回答
0

您应该将所有 tickBox 放在一个数组中,然后循环该数组以执行您的测试

于 2013-01-05T13:55:29.877 回答