我希望有大量的文本框可以启用和编辑。创建NSArray
UItextField
个{{1}}对象的最佳方法是什么?如果是,我该如何创建?或建议其他方法来实现这一目标。
答案 0 :(得分:1)
这在很大程度上取决于你想要做什么。 NSArray
作为存储您在控制器中使用的所有文本框的方法(而不是为此目的创建ivars)是可以的,但您也可以使用UITableView
/ {{1}为此。
使用表格视图可以让您毫不费力地增加文本框的数量。另一方面,如果您可以保证您的文本框永远不会超过您在单个屏幕上显示的文本框,我不认为使用表格视图会给您带来很大的好处。但是,正如我所说,这在很大程度上取决于你想要做什么。
如果您决定使用数组选项,我建议您使用UITableViewController
,以便您可以按名称访问每个视图(或标记,如果您将标记与每个视图相关联)
另请注意,您可以在容器视图上使用NSDictionary
方法,根据您指定的视图标记获取对其包含的任何视图的引用。所以,你可以这样做:
getViewByTag:
从这个意义上讲,视图已经作为文本框的容器,并允许您访问它们。
编辑:
其实我正在尝试创建一个填字游戏网格
好吧,所以,如果它是2维的,我会说排除了一个表视图(这不是不可能的,但我认为有更简单的方法)。
关于你的问题,这完全取决于填字游戏网格的动态程度:它总是具有相同的行数和列数吗?或者可以由用户定义吗?等
在第一种情况下,我会选择//-- creating text box:
UITextField* textBox = ....;
textBox.tag = 1;
[self.view addSbview:textBox];
//-- accessing the text box:
UITextField* textBox = [self.view getViewByTag:1];
,或者我只是使用如上所示的标记(这也会使内存管理自动化)。
否则,您可能会检查NSArray
。
如果您的问题是:哪种数据结构更适合处理填字游戏?然后,看看this post。无论如何,我会说:不要指望你找到针对这类问题的现成解决方案......
答案 1 :(得分:0)
包含可编辑单元格的UITableView
将是执行此操作的最佳方式,如果您遵循我认为您正在描述的内容。 Apple开发者网站上有大量示例代码,详细说明了如何最好地使用表格视图来创建显示一系列可编辑文本输入的视图。
答案 2 :(得分:0)
最好使用UI表格视图而不是添加“n”个文本字段。