延迟 ViewController 即使不处理数据

Laggy ViewController even when not processing data

我有一个 UIViewController 预先进行大量数据处理以呈现 UIScrollView。奇怪的是,即使完成了所有 processing/rendering,滚动时 UIScrollView 仍然非常滞后。

我仔细检查过没有任何处理,我什至没有使用 scrollViewDidScroll 委托方法。

我在视图中也有一个 UITableView(目前没有数据),它也很慢,所以它影响了该视图中的所有内容。 (如果我更改选项卡,其他视图的 none 会显示任何滞后)。

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

编辑:澄清一下,我的UITableView目前是空的,所以这不是回收问题。我刚才提到了 UITableView,因为它不仅仅是滞后的 UIScrollView

编辑 2: 正如@MacKentoch 指出的那样,使用舍入会导致滞后。我从我的子视图中删除了舍入并解决了这个问题。我用它把正方形圆成圆形:

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

有没有更有效的方法来做到这一点?

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

UILabel layer cornerRadius negatively impacting performance

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

关于圆角,它也可能会影响(但我认为影响较小)。

解决方案:

  • shadow : 来自 image 或放置 subview behind制作阴影效果

  • 圆角 : 图片

我就是这么做的,没能按照我的意愿去做有点失败,但结果还可以。