的问题: 的
向subviews
添加/删除UIScrollView
会导致显着延迟。
的详细说明: 的
我有一个UIScrollView
(有分页enabled
),其中包含几十个“页面”。此UIScrollview
的内容大小是页数* UIScrollView
的宽度。
这些页面中的每一页都是subview
,我是通过某些文件系统访问构建的。我的UIScrollView
保留了三页subviews
:当前页面及其左/右邻居。当当前页面离屏幕一半时,即当磁盘访问和操作视图层次结构时,会发生加载/逐出邻近subviews
。
当我第一次遇到这个时,我立即想到的是,磁盘访问/构建subview
是滞后的来源。我已经转移到NSTimer
,我仍然遇到同样的滞后。
我开始怀疑滞后是由addSubview
(将subview
添加到UIScrollView
)和removeFromSuperview
(从subviews
移除UIScrollView
引起的1}})。
Subviews
会直接添加到UIScrollView
。我添加的UIScrollView
内没有“内容视图”。
的问题: 的
这是一个常见的问题/瓶颈吗?加载这些页面有更好的模式吗?
答案 0 :(得分:1)
问题最终是设置子视图的图像属性。 UIImage不会立即执行其处理,只是为了准备出现在屏幕上 - 这就是造成延迟的原因。
这个问题引导我走上正轨:
Setting image property of UIImageView causes major lag
他们的解决方案是使用Core Graphics自行解压缩/处理图像,并且效果很好。
答案 1 :(得分:0)
NSTimer
通常在主线程上运行。如果你在主线程上进行同步磁盘访问,那么这将导致口吃。你是怎么读文件的?