UITextField 初始化缓慢?
Posted
技术标签:
【中文标题】UITextField 初始化缓慢?【英文标题】:UITextField slow to initialize? 【发布时间】:2011-08-21 20:07:48 【问题描述】:我正在以编程方式将大约 100 个 UITextFields 放入 UIScrollView 中,用于精心制作的数据输入应用程序(不要问....bletch),我发现生成所有这些 UITextFields 花费的时间太长......大约 4 秒。
有没有更好或更快的方法来以编程方式制作如此多的用户界面对象?
例如,加载 Xib/Nib 并尝试根据需要对其进行修改是否更明智?
谢谢。
【问题讨论】:
【参考方案1】:您是否想过只创建几个 UITextField
s 并在它们离开屏幕后重新使用它们,就像 UITableView
对单元格所做的那样?
【讨论】:
【参考方案2】:哎呀,作为数据输入的 100 个文本字段太苛刻了。但是当客户坚持一个非常愚蠢的想法时,我知道问题所在。
返回主题:问题不在于您的UITextFields
的实际生成。这是 Cocoa touch 处理视图的方式。视图非常缓慢。你用笔尖的想法更糟,因为它们实际上更慢。
避免这种情况的唯一方法是简单地不绘制(添加)许多视图。只需添加当前在滚动视图可见区域中的视图并删除其他视图。
Cocoa touch 其实已经有一个很好的控件了,叫做UITableView
。 ;)
正是由于这些原因,Apple 在 UITableView 中创建了出队/重用模式。 因此,我对您的建议是使用表格视图而不是带有自定义单元格的滚动视图(以避免分隔符等),并将这些单元格出列/重用并用您存储在某个数组中的 UITextField 填充它们。
【讨论】:
【参考方案3】:我的第一个想法是编写一个计时器并以小步骤 1 个(或更多)加载它们,以便 UI 不会冻结(仍需要 4 秒,但至少用户可以输入加载的文本字段)
here是怎么做定时器的
【讨论】:
以上是关于UITextField 初始化缓慢?的主要内容,如果未能解决你的问题,请参考以下文章
在不禁用上下文菜单的情况下管理 UITextfiled 上的长按?