我从触摸移动调用setNeedsDisplay(并且还尝试不从触摸移动调用,而是从0.05计时器调用)并且drawrect方法总是滞后。他们无论如何要改变这个?我正在做很多绘图,但我不知道解决方案来解决滞后问题。即使计时器以1.0的间隔被调用,当计时器调用选择器时仍然滞后。此外,我没有泄漏(我使用Xcode分析功能检查)。请帮忙!!
编辑:我正在调用setNeedsDisplay,而不是来自我的计时器/方法的drawRect
编辑:似乎无论核心图形在哪些地方都有很多绘图,它总是滞后。我很肯定我没有内存泄漏,我甚至创建了另一个绘画应用程序并且它滞后(对此有什么解决方法?请帮助我)答案 0 :(得分:4)
对其中一个答案进行了略微编辑的评论记录:
我正在绘制一种基于色调的颜色选择器的颜色(在绘制矩形中绘制每个色调值的行)
......你在画360个矩形吗?
是的,我是......。
我将360个不同颜色的矩形图像绘制到一个UIImageView的图像中。比我释放矩形。 (我使用for循环进行矩形分配/释放)
所以,你这样做了360次:
然后将您绘制的所有较小图像的图像传递给UIImageView进行实际显示?
听起来你正试图在图像中缓存它,如果你做得对,这应该在第一次之后有所帮助,但这不需要首先放慢速度。
您已拥有自定义视图。删除图像视图,并剪切所有这些矩形绘图(或图像绘制)代码。如果您的图像文件包含单独的彩色矩形,请将其删除。
在您的视图中drawRect:
,create a gradient和draw that。你的drawRect:
长三行,应该更快,更快。
答案 1 :(得分:2)
您不应该明确地致电drawRect
。改为使用setNeedsDisplay
,系统准备就绪时将执行绘图。
编辑: 基于你已经这样做的事实。你的问题是你的drawRect太慢了。你想要画什么?
答案 2 :(得分:2)
我从触摸移动中调用drawrect
(并且还尝试不从触摸移动调用,而是从0.05计时器调用)
并且drawrect方法总是滞后的。他们无论如何要改变这个?我正在做很多绘图,但我不知道解决方案来解决滞后问题。即使计时器以1.0的间隔被调用,当计时器调用选择器时仍然滞后。此外,我没有泄漏(我使用Xcode分析功能检查)。请帮忙!!
答案 3 :(得分:0)