Iphone Coregraphics在iPad上造成了很大的滞后?

Iphone Coregraphics在iPad上造成了很大的滞后?,iphone,memory,core-graphics,lag,Iphone,Memory,Core Graphics,Lag,出于某种原因,在iphone/ipod上运行时绝对没有延迟,但在iPad上,它们在绘图时有明显的延迟。我使用的代码如上所述,有什么建议可以解决这个问题吗?这个问题之所以如此滞后,是因为您在TouchsMoved:withEvent:中进行了此操作。当接收到触摸事件时,可以多次调用此方法(显然)。因为向图形上下文绘图可能是一项资源密集型操作,所以我建议不要做您在那里正在做的所有事情。我会尽可能将您正在进行的渲染推迟到touchesbeagin和touchesEnd方法。如果这是不可能的,也许您只能

出于某种原因,在iphone/ipod上运行时绝对没有延迟,但在iPad上,它们在绘图时有明显的延迟。我使用的代码如上所述,有什么建议可以解决这个问题吗?

这个问题之所以如此滞后,是因为您在
TouchsMoved:withEvent:
中进行了此操作。当接收到触摸事件时,可以多次调用此方法(显然)。因为向图形上下文绘图可能是一项资源密集型操作,所以我建议不要做您在那里正在做的所有事情。我会尽可能将您正在进行的渲染推迟到
touchesbeagin
touchesEnd
方法。如果这是不可能的,也许您只能在移动中达到某个增量后执行这些操作,例如,每个
2.0f
点。

之所以如此缓慢,是因为您在
触摸移动:withEvent:
中执行操作。当接收到触摸事件时,可以多次调用此方法(显然)。因为向图形上下文绘图可能是一项资源密集型操作,所以我建议不要做您在那里正在做的所有事情。我会尽可能将您正在进行的渲染推迟到
touchesbeagin
touchesEnd
方法。如果这是不可能的,您可能只能在运动中达到某个增量后执行这些操作,例如,每个
2.0f
点。

了解在什么上下文(rimshot!)中执行上述代码会很有帮助。您在什么上下文中是什么意思?当用户拖动手指时,它在self.view中,请详细说明,因为我不太清楚您在什么方法中调用此代码是什么意思(有点初学者)?了解在什么上下文(rimshot!)中执行上述代码会很有帮助。您在什么上下文中是什么意思?当用户拖动他们的手指时,它在self.view中,请详细说明,因为我不太确定你的意思(有点像初学者)这段代码是用什么方法调用的?我已经尝试了delta方法(使用距离公式)和计时器方法,试图让它工作。delta方法的问题是,移动的接触总是至少有一个,因此对于精确绘制,delta方法不会改变任何东西。使用定时器方法,它的更新时间和速度都不够快,无法跟上触摸(即使是250.0f/1.0f、300.0f/1.0f)。那么你知道其他的解决办法吗。感谢前两个,但如果你知道另一个,请回复我已经尝试了delta方法(使用距离公式)和计时器方法,试图让它工作。delta方法的问题是,移动的接触总是至少有一个,因此对于精确绘制,delta方法不会改变任何东西。使用定时器方法,它的更新时间和速度都不够快,无法跟上触摸(即使是250.0f/1.0f、300.0f/1.0f)。那么你知道其他的解决办法吗。感谢前两个,但如果你知道另一个,请回复
 UIGraphicsBeginImageContext(self.view.bounds.size);
        [currentStrokeImageView.image drawInRect:CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height)];
        CGContextSetLineCap(UIGraphicsGetCurrentContext(), kCGLineCapRound);
        CGContextSetBlendMode(UIGraphicsGetCurrentContext(), kCGBlendModeNormal);
        CGContextSetLineWidth(UIGraphicsGetCurrentContext(), dWidth);
        CGContextSetRGBStrokeColor(UIGraphicsGetCurrentContext(), r, g, b, 1.0f);
        CGContextBeginPath(UIGraphicsGetCurrentContext());
        CGContextMoveToPoint(UIGraphicsGetCurrentContext(), pointA.x, pointA.y);
        CGContextAddLineToPoint(UIGraphicsGetCurrentContext(), pointB.x, pointB.y);
        CGContextStrokePath(UIGraphicsGetCurrentContext());
        currentStrokeImageView.image = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();