Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 使用drawRect时的最佳实践_Objective C_Uikit_Core Graphics - Fatal编程技术网

Objective c 使用drawRect时的最佳实践

Objective c 使用drawRect时的最佳实践,objective-c,uikit,core-graphics,Objective C,Uikit,Core Graphics,我最近开始创建自己的控件,在理解如何使用drawRect时似乎有点困难 基本上我有三个问题 有条件的drawRect是个好主意吗?即:基于特性或实例变量的不同图形代码 为drawRect的图形设置更改动画的最佳方法是什么?例如,具有动画填充和取消填充的燃油表控件 最后,我看到的用drawRect制作动画的例子倾向于使用计时器,这在实践中真的是一种好方法吗?似乎较重的应用程序会对这种方法产生问题 我想第四个可能是,有没有更好的地方来做这种事情 有条件的drawRect是个好主意吗?即:基于特性或实

我最近开始创建自己的控件,在理解如何使用drawRect时似乎有点困难

基本上我有三个问题

  • 有条件的drawRect是个好主意吗?即:基于特性或实例变量的不同图形代码

  • 为drawRect的图形设置更改动画的最佳方法是什么?例如,具有动画填充和取消填充的燃油表控件

  • 最后,我看到的用drawRect制作动画的例子倾向于使用计时器,这在实践中真的是一种好方法吗?似乎较重的应用程序会对这种方法产生问题

  • 我想第四个可能是,有没有更好的地方来做这种事情

    有条件的drawRect是个好主意吗?即:基于特性或实例变量的不同图形代码

    当然,为什么不呢?如果您的
    drawRect:
    方法变得笨拙,您可以将其拆分为多个方法,然后根据视图的属性从
    drawRect:
    调用这些方法。例如,您可以使用类似于
    drawBackground
    drawTitle
    等方法

    为drawRect的图形设置更改动画的最佳方法是什么?例如,具有动画填充和取消填充的燃油表控件

    那要看情况。对于非常小的视图,可以从计时器调用
    setNeedsDisplay
    ,但是对于较大的视图,这种方法通常会遇到性能问题


    通过将视图从多个子视图或可使用核心动画(或简化的
    UIView
    Animation方法)设置动画的层中合成,可以更好地设置更改的动画效果。

    通过将视图从可使用核心动画设置动画的多个子视图或层中合成,可以更好地设置更改的动画效果(或简化的UIView动画方法)。”你能给我举一些这样的例子吗?不知道你在找什么。iOS上有很多关于动画的资料。如何准确地结合不同的技术取决于你自定义视图的性质。例如,对于一个简单的进度条,你只需改变“条”子视图的大小就可以了(这通常是硬件加速的),而不是在每次进度改变时重新绘制整个视图,包括静态背景…我想我只是在脑海中规划出问题,我想这就是铅笔和纸的用途。非常感谢您的帮助。