这些建议是WWDC给的建议:
-
第一条规则 保持视图的轻量 为了保持视图的轻量 尽可能地利用 CALayer 上图形处理器加速的可用属性 并避免使用中央处理器自定义绘图 若一定要用 切记要测量其性能 因为系统要做额外工作 从而需要在处理下一事务时 使用更长的耗时 并占用更多内存 所以要避免出现空的 drawRect 实现 尽量复用视图 避免使用代价过高的视图层级结构操作 如添加和移除 移除视图时 如果要把某一视图从某一动画中移除 尽量使用视图属性“ 隐藏” 这个操作的代价就小多了
-
第二条规则 减少代价过高且重复的布局 在需要更新布局时 尽量只使用 setNeedsLayout, layoutIfNeeded 会消耗 当前事务的生命周期 也会造成卡顿 大多数时候 你可以等到下一次循环执行时 再更新你的布局 试着使用最少的限制 来避免解决问题时增加难度 最后 视图应该只能使自己 或自己的子视图无效 而不能使其同级视图或父视图无效
不然的话 视图的布局就会再一次陷入递归性无效
网友评论