小编Cha*_*Man的帖子

使用layoutSubviews和drawRect自定义UIView绘图

是否应该从drawRect()或调用CAShapeLayers的图纸layoutSubviews()

根据Apple关于UIViews的文档,应该放置绘图操作drawRect().

然而,在Kevin Cathey的WWDC会话中并非如此:Interface Builder中的新功能(他演示了构建可在Interface Builder中访问的自定义UIView的过程).

在他的演示中,他执行了视图的绘制layoutSubviews,而不是drawRect.

他的解释是:

如果我要实现drawRect,那将无法让我们获得最佳性能; 然而,使用子图层和子视图会让我们获得非常好的表现.

从我到目前为止在StackOverflow上看到的内容来看,覆盖该drawRect()方法似乎会导致性能降低.这部分是由于setNeedsDisplay触发手动重绘是昂贵的.

但仔细查看Apple文档和实际应用程序.drawRect()应该负责绘制视图和layoutSubviews()处理定位是有道理的.

uiview ios

7
推荐指数
1
解决办法
1892
查看次数

标签 统计

ios ×1

uiview ×1