【发布时间】:2015-04-20 18:48:44
【问题描述】:
我有一个UIViewController,它预先进行大量数据处理以呈现UIScrollView。奇怪的是,即使所有的处理/渲染都完成了,UIScrollView 在滚动时还是很迟钝。
我已经仔细检查过没有任何东西正在处理,我什至没有使用 scrollViewDidScroll 委托方法。
我在视图中也有一个UITableView(目前没有数据),它也是滞后的,因此它会影响该视图中的所有内容。 (如果我更改选项卡,其他视图都不会显示任何滞后)。
高内存使用率会导致这种延迟吗?考虑到我在处理后删除了大部分加载的数据,这似乎很奇怪。还能是什么?
编辑:澄清一下,我的UITableView 目前是空的,所以这不是回收问题。我刚刚提到了UITableView,因为落后的不仅仅是UIScrollView。
编辑 2: 正如@MacKentoch 指出的那样,使用舍入会导致滞后。我从我的子视图中删除了舍入,它解决了这个问题。我正在使用它来将正方形四舍五入:
label.layer.cornerRadius = height / 2
label.layer.masksToBounds = true
有没有更有效的方法来做到这一点?
【问题讨论】:
-
在所有模拟器上都滞后吗?它恰好与 iPhone 6 plus 模拟器滞后(因为缩小,否则会占用我所有的屏幕)
-
哦,它在模拟器上实际上并不是超级滞后。它在实际设备上更加滞后。在这一点上,我已经从 6+ 模拟器开始期待它了哈哈。
-
您能否运行 Time Profiler 工具并发布前 5 个条目的屏幕截图/代码?
-
好的。 我不确定是不是同样的情况。但是,滚动时我在 TableView 上遇到了同样的问题。事实上,我对多个子视图层(阴影,圆角...)产生了一些影响。我删除了阴影效果,然后它就更好了。我想在滚动时渲染阴影效果可能会花费太多。否则您是否检查您的内存使用情况?
-
没有代码有点难,你确定你也在回收cell中的对象吗?
标签: ios swift uiviewcontroller uiscrollview