延迟 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制作阴影效果
圆角 : 图片
我就是这么做的,没能按照我的意愿去做有点失败,但结果还可以。
我有一个 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制作阴影效果
圆角 : 图片
我就是这么做的,没能按照我的意愿去做有点失败,但结果还可以。