我有一个很大的UIScrollView(contentSize 8000 x 960)与很多小标签。UIScrollView性能问题,因为大量的标签
只有当您滚动到标签所属的区域时才会添加标签。所以,起初,sc is流畅,但随着越来越多的标签被加载,性能受到越来越多的影响。
保持滚动平滑的最佳解决方案是什么? CATiledLayer是要走的路吗?还是应该隐藏视图标签或类似的东西?
非常感谢您的帮助!
斯特凡
编辑: 我画了一些对象,而不是使用意见时,得到了一个巨大的性能提升;但现在,我又遇到了另一个问题。如果我直接绘制到UIScrollView上,一切都很好。但是,如果我在UIScrollView上放置一个UIView并绘制它,性能会再次下降(这两次调用setNeedsDisplayInRect:在scrollViewDidScroll :)。
所以层次:
的UIWindow
的UIView
的UIScrollView < ==绘制这里
工作正常。
但层次:
的UIWindow
的UIView
的UIScrollView(大小8000x960)
的UIView(尺寸8000×960)< ==绘制这里
执行不好。
任何想法为什么?我需要上面的UIView,因为绘图应该高于一些UIViews;所以我把在滚动视图的UIViews并在上面的视图中绘制...
你试过去除当前不可见的标签吗?顺便说一句,你的用例是由UITableView解决的。不知道你希望如何显示标签。 – 2011-05-05 12:15:38
我刚刚做过;似乎没有帮助:(是不是在成百上千的视图循环,并确定视图应该是可见的开销,杀死性能增益? – swalkner 2011-05-05 13:32:43
这是真的,列举在每个滚动事件的所有标签是不是一个好主意。你应该首先找到一个瓶颈,什么是Time Profiler仪器说的?它是否指向你的代码是最饥饿的代码? – 2011-05-05 14:23:41