1

如果我有 100 个 UITextFields,

myTextfFeld1, myTextField2...依此类推,直到mytextField100

...并且他们都执行相同的操作,例如更改myTextField1.alpha = 0.4myTextField1.alpha = 1.

与其把它写出 100 次,还有一种更有效的方法来做到这一点

我在这里查看了iOS 循环遍历对象的属性并添加操作,但它仍然意味着将所有内容添加UITextFields到数组中。

4

3 回答 3

6

请不!

像这样。

认真地使用数组。你不敢有 100 个实例变量命名textField1textField100


只是为了真正回答您的问题:您仍然可以这样做。同样,我强烈反对这样做,但为了完整起见,这里是代码:

for (int i = 1; i <= 100; i++) {
    NSString *ivarName = [NSString stringWithFormat:@"myTextField%d", i];
    UITextField *tf = [self valueForKey:ivarName];
    [tf doWhateverYouWant];
}

Objective-C 中的反射很棒,不是吗?受虐时不完全。

于 2013-06-23T18:23:13.530 回答
1

您可以定义一个出口集合并将所有文本字段从 XIB 连接到它:

 @property (nonatomic, weak) IBOutletCollection(UITextField) NSArray *textFields;

然后你可以遍历textFields数组。

于 2013-06-23T18:23:26.627 回答
-2

对文本字段使用循环和数组。例如

int i = 0
do textfield[i].alpha = 1
i = i+1
until i = 100
于 2013-06-23T18:24:03.240 回答