即使不处理数据,Laggy ViewController也是如此

时间:2015-04-20 18:48:45

标签: ios swift uiviewcontroller uiscrollview

我有UIViewController预先进行大量数据处理以呈现UIScrollView。奇怪的是,即使所有处理/渲染都完成,滚动时UIScrollView也会非常滞后。

我已经仔细检查过没有正在处理的内容,我甚至没有使用scrollViewDidScroll委托方法。

我在视图中也有一个UITableView(目前没有数据)也是滞后的,所以它会影响该视图中的所有内容。 (如果我更改标签,其他任何一个视图都没有显示任何延迟。)

高内存使用会导致这种滞后吗?考虑到我在处理后删除了大部分加载的数据,这似乎很奇怪。还有什么呢?

修改:为了澄清,我的UITableView目前是空的,所以它不是回收问题。我刚刚提到了UITableView,因为它不仅仅是滞后的UIScrollView

编辑2:正如@MacKentoch指出的那样,使用舍入可能会导致延迟。我从子视图中删除了舍入,并修复了问题。我用这个将方块围成圆圈:

label.layer.cornerRadius = height / 2
label.layer.masksToBounds = true

有更有效的方法吗?

2 个答案:

答案 0 :(得分:0)

感谢@MacKentoch建议它可能是圆角。确定问题后,这个SO答案迅速解决了问题:

UILabel layer cornerRadius negatively impacting performance

答案 1 :(得分:0)

影子效果影响滚动渲染(子视图越多,阴影越严重)。

关于圆角也可能会产生影响(但我认为不多)。

解决方案:

  • 阴影:来自图片或放置子视图以制作阴影效果

  • 圆角图片

这就是我的所作所为,有点失败,不能像我想的那样做,但结果还可以。