我最近开始创建自己的控件,我似乎在理解如何使用drawRect时遇到了一些麻烦。
基本上我有3个问题。
有条件drawRect是一个好主意吗?即。基于属性或实例变量的不同绘图代码。
动画更改drawRect绘图的最佳方法是什么?例如,带有动画填充和未填充的电量计控制。
最后,我看到用drawRect制作动画的例子倾向于使用定时器,这在实践中真的是一个好方法吗?似乎较重的应用程序会出现该方法的问题。
我想第4个会是,或许是一个更好的地方做这种事情?
答案 0 :(得分:2)
有条件drawRect是一个好主意吗?即。基于属性或实例变量的不同绘图代码。
当然,为什么不呢?如果您的drawRect:
方法变得难以处理,则可以将其拆分为多个方法,然后根据视图的属性从drawRect:
调用这些方法。例如。您可以使用drawBackground
,drawTitle
等方法
为drawRect的绘图添加动画效果的最佳方法是什么?例如,带有动画填充和未填充的电量计控制。
这取决于。对于非常小的视图,您可以从计时器调用setNeedsDisplay
,但对于较大的视图,您通常会遇到使用此方法的性能问题。
通过使用核心动画(或简化的UIView
动画方法)动画制作多个子视图或图层,可以更好地完成动画更改。