使用drawRect时的最佳做法

时间:2012-05-22 11:19:56

标签: objective-c uikit core-graphics

我最近开始创建自己的控件,我似乎在理解如何使用drawRect时遇到了一些麻烦。

基本上我有3个问题。

  1. 有条件drawRect是一个好主意吗?即。基于属性或实例变量的不同绘图代码。

  2. 动画更改drawRect绘图的最佳方法是什么?例如,带有动画填充和未填充的电量计控制。

  3. 最后,我看到用drawRect制作动画的例子倾向于使用定时器,这在实践中真的是一个好方法吗?似乎较重的应用程序会出现该方法的问题。

  4. 我想第4个会是,或许是一个更好的地方做这种事情?

1 个答案:

答案 0 :(得分:2)

  

有条件drawRect是一个好主意吗?即。基于属性或实例变量的不同绘图代码。

当然,为什么不呢?如果您的drawRect:方法变得难以处理,则可以将其拆分为多个方法,然后根据视图的属性从drawRect:调用这些方法。例如。您可以使用drawBackgrounddrawTitle等方法

  

为drawRect的绘图添加动画效果的最佳方法是什么?例如,带有动画填充和未填充的电量计控制。

这取决于。对于非常小的视图,您可以从计时器调用setNeedsDisplay,但对于较大的视图,您通常会遇到使用此方法的性能问题。

通过使用核心动画(或简化的UIView动画方法)动画制作多个子视图或图层,可以更好地完成动画更改。