objective-c - 如何在循环中设置UITextField的正确标签

标签 objective-c

我有一个循环生成 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………..

有什么想法吗?谢谢!

最佳答案

所以,忘记计数器。您可以使用 iii 检索它。

让我们看看您的 2 个 for 循环做了什么,其中“-”还没有任何意义,而“•”则放置了 UITextField

----------
----------
----------

然后:

•---------
----------
----------

然后:

•---------
•---------
----------

等等

所以我们很快就看到i代表一列,ii代表一行。像这样重命名它们会很好。
现在,如果您记录了 iii,您就可以弄清楚逻辑是什么,即:

[tf setTag:(ii*10+i+1)];

请注意,这只是一个善意的建议(而不是“如果您自己进行调试,您可以单独完成它”),有时会记录一些事情(例如计数器:iii 在我们的例子中)来理解它们,特别是在循环中,当它变得棘手时。当我的循环没有达到我的预期时,我经常这样做。

关于objective-c - 如何在循环中设置UITextField的正确标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23906716/

相关文章:

html - 在 IOS 8 中解析 HTML 并获取特定标签

ios - 无法读取数据,因为它的格式不正确

ios - 让ios应用程序在后台运行

objective-c - NSString 固定长度

objective-c - 异步数据附加到 ios 中的文件?

objective-c - 项目 “test.xcodeproj”被修改但被外部更改

objective-c - 用户输入的字符串在应用首选项中保存为 URL

ios - 将iOS项目转换为OSX

ios - iOS 7 的 Twitter 集成,cocos2d v3

ios - 跟随手指展开 UIView