gpt4 book ai didi

iphone - UIScrollView 由于标签过多而导致性能问题

转载 作者:行者123 更新时间:2023-12-03 19:02:29 28 4
gpt4 key购买 nike

我有一个相当大的 UIScrollView (contentSize 8000 x 960),带有很多小标签。

仅当您滚动到标签所属的区域时才会添加标签。因此,一开始,滚动很流畅,但随着加载的标签越来越多,性能会受到越来越大的影响。

保持滚动流畅的最佳解决方案是什么? CATiledLayer 是正确的选择吗?或者应该隐藏 View 之外的标签或类似的东西?

非常感谢您的帮助!

斯特凡

编辑:当绘制一些对象而不是使用 View 时,我获得了巨大的性能提升;但现在,我遇到了另一个问题;如果我直接在 UIScrollView 上绘图,一切都会表现得很好。但是,如果我在 UIScrollView 上放置一个 UIView 并在其上进行绘制,性能会再次下降(两次在scrollViewDidScroll中调用 setNeedsDisplayInRect: :)。

所以层次结构:
UI窗口
UI View
UIScrollView <== 在这里绘制

工作正常。

但层次结构:
UI窗口
UI View
UIScrollView(尺寸8000x960)
UIView(大小8000 x 960)<==在此处绘制

表现不佳。

有什么想法吗?我需要上面的 UIView,因为绘图应该位于某些 UIView 之上;所以我将 UIViews 放在 ScrollView 中并在上面的 View 中绘制...

最佳答案

标签重用是可能的解决方案之一。有时它并没有多大帮助。当出现新的 UIView 时,将调用 drawRect 方法,这可能会导致动画问题。

有时,最好的解决方案是直接使用 Core Graphics 绘制标签(我的意思是文本),而不创建 UILabel 对象或其他东西。 CALayer 会提高性能,但可能不会给您带来太大帮助。

但首先你应该记住,alpha = 0或hidden = YES的 View 根本不会被绘制,所以使用它们不会有任何惩罚。也许您应该在使用 Core Graphics 之前尝试隐藏未使用的图形。

关于iphone - UIScrollView 由于标签过多而导致性能问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5897058/

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