如果我有100个UITextFields,
myTextfFeld1
,myTextField2
...依此类推,直到mytextField100
...他们都执行相同的操作,比如将myTextField1.alpha = 0.4
更改为myTextField1.alpha = 1
。
而不是将其写出100次是否有更有效的方法来做到这一点
我在这里查看iOS looping over an object's properties and adding actions,但仍然意味着将所有UITextFields
添加到数组中。
答案 0 :(得分:6)
请,不!
认真使用数组。 您是否敢将textField1
名称为textField100
的100个实例变量!
只是为了实际回答您的问题:您仍然可以执行此操作。同样,我强烈反对这样做,但为了完整起见,这里是代码:
for (int i = 1; i <= 100; i++) {
NSString *ivarName = [NSString stringWithFormat:@"myTextField%d", i];
UITextField *tf = [self valueForKey:ivarName];
[tf doWhateverYouWant];
}
Objective-C中的反思很棒,不是吗?被滥用时并不完全。
答案 1 :(得分:1)
您可以定义插座集合并将所有文本字段从XIB连接到它:
@property (nonatomic, weak) IBOutletCollection(UITextField) NSArray *textFields;
然后你可以遍历textFields
数组。
答案 2 :(得分:-2)
为文本字段使用循环和数组。 e.g。
int i = 0
do textfield[i].alpha = 1
i = i+1
until i = 100