gpt4 book ai didi

objective-c - 优化动态 UILabel 创建

转载 作者:行者123 更新时间:2023-12-03 17:33:03 24 4
gpt4 key购买 nike

假设我正在运行以下代码。我正在动态创建添加到 UIScrollview 的 1000 个 UILabel。然而,这段代码运行得非常慢,因为每次循环出现时我都必须创建一个新的 UILabel。我不能移动线 UILabel *dayLabel = [[UILabel alloc] init];在循环之前,因为它只创建 1 个 UILabel。关于如何优化这段代码的任何想法?

for (int i=0; i<1000; i++) {
UILabel *dayLabel = [[UILabel alloc] init];
dayLabel.multipleTouchEnabled = YES;
dayLabel.frame = CGRectMake(0, 40 * i, 40, 40);
[_scroller addSubview:dayLabel];
}

最佳答案

解决创建对象问题的唯一方法是不创建它们。或者至少还没有创建它们。

所有 1000 个标签都不适合屏幕,因此您只需创建一组适合的标签。然后您观察滚动事件,并动态创建可见的标签。同时,您可以在标签滚出屏幕时删除它们。保留这些标签:您可以重复使用回收列表中的旧标签,而不是每次都创建一个新标签。

到目前为止,您可能想知道您是否在某个地方看到过这个方案。你是对的,它与 UITableView 用于其单元格的方案相同。这是一段复杂的代码,所以如果你可以用一个表格替换一个满是标签的 ScrollView ,你会为自己节省很多工作。

关于objective-c - 优化动态 UILabel 创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14664774/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com