我有一个循环生成 100 个 10x10 的文本字段。
int counter=0;
for (int i = 0; i < 10; i++)
{
for (int ii = 0; ii < 10; ii++)
{
counter++;
UITextField *tf = [[UITextField alloc] initWithFrame:CGRectMake(0 + 25 * i ,60+25*ii,25,25)];
counter++;
tf.tag =counter;
[self.view addSubview:tf];
}
}
- 上面的代码将创建所有 100 个文本字段,但标签分配得非常糟糕且顺序不正确。
这就是我得到的:
1.标签表示
1 11 21 31 41 51 61 71 81 91
2 12 22 32 42 52 62 72 82 92
3 …………
2.这就是我想要的:
1 2 3 4 5 6 7 8 9 10
11 12 13 14 15 16 17 18 19 20
21………..
有什么想法吗?谢谢!
最佳答案
所以,忘记计数器
。您可以使用 i
和 ii
检索它。
让我们看看您的 2 个 for
循环做了什么,其中“-”还没有任何意义,而“•”则放置了 UITextField
。
----------
----------
----------
然后:
•---------
----------
----------
然后:
•---------
•---------
----------
等等
所以我们很快就看到i
代表一列,ii
代表一行。像这样重命名它们会很好。
现在,如果您记录了 i
和 ii
,您就可以弄清楚逻辑是什么,即:
[tf setTag:(ii*10+i+1)];
请注意,这只是一个善意的建议(而不是“如果您自己进行调试,您可以单独完成它”),有时会记录一些事情(例如计数器:i
或ii
在我们的例子中)来理解它们,特别是在循环中,当它变得棘手时。当我的循环没有达到我的预期时,我经常这样做。
关于objective-c - 如何在循环中设置UITextField的正确标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23906716/