创建自定义UIView的最佳做法是什么?

时间:2015-07-16 21:48:23

标签: ios uiview

为了创建自定义视图,我有三个选项。

  1. 覆盖

    func drawRect(_ rect:CGRect)

  2. 将子图层添加到视图的图层。

  3. 两者都做。

  4. 最佳做法是什么?如果我可以在子图层中绘制所有内容(使用更简单的API),为什么我会覆盖drawRect?

    谢谢

1 个答案:

答案 0 :(得分:2)

drawRect中的渲染意味着您正在使用CPU使用Core Graphics绘制视图。

如果你可以使用CALayer子图层的组合,那么这几乎总是更好的选择,因为繁重的工作由GPU完成。

最重要的是,在主线程上调用drawRect,如果你的绘图代码不快,你的应用程序响应速度会慢一些(当然你可以使用后台线程来解决这个问题,但是您仍将使用CPU绘制位图。