使用 drawRect、setNeedsDisplay 和 layoutSubViews
Posted
技术标签:
【中文标题】使用 drawRect、setNeedsDisplay 和 layoutSubViews【英文标题】:Using drawRect, setNeedsDisplay and layoutSubViews 【发布时间】:2010-08-23 12:14:47 【问题描述】:是否有 等方法的基本规则? 我相信它们会对应用程序的性能产生不利影响。这些消息是否有任何首选的替代方案?
【问题讨论】:
【参考方案1】:虽然这不是 this question 的完全相同,但我相信 my answer there 仍然适用。
总而言之,-drawRect:
将重绘视图中的内容,这是一项昂贵的操作。如果可以通过分层内容并根据需要移动或隐藏这些图层来避免重绘。
但是,这些重绘通常只有在快速连续完成许多重绘(例如尝试为内容制作动画时)才会对性能产生重大影响。一次性重绘静态 UI 元素不会明显减慢速度。
【讨论】:
以上是关于使用 drawRect、setNeedsDisplay 和 layoutSubViews的主要内容,如果未能解决你的问题,请参考以下文章
为啥尝试使用 drawRect 绘制彩色圆圈时颜色是透明的?
使用 CAGradientLayer 和 drawRect:(CGRect) 绘制顺序