【发布时间】:2012-09-07 09:48:46
【问题描述】:
我正在 iOS 中制作绘画应用程序。在这里我将简要介绍一下逻辑,
1.初始化位图
2.每当检测到 touchBegan 或 touchMoved 事件时,我在位图上的该位置绘制一个填充的 CGRect,并将位图绘制到屏幕上。
除了一个小问题,它工作得很好。如果我在模拟器中快速移动鼠标,我不会连续中风。它只是一系列断开连接的 CGRects 。我做了一些研究,结果表明在 iOS 中,触摸事件仅每 16 毫秒触发一次,但我不认为我移动鼠标的速度那么快。那么是模拟器问题还是我的代码问题?
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
CGPoint touchPoint=[touch locationInView:self];
CGContextFillRect (currentBitmap, CGRectMake (touchPoint.x -8 , touchPoint.y - 8 , rectangularBrushSize, rectangularBrushSize ));
[self setNeedsDisplay]; //draw currentBitmap to screen
}
touchesMoved 的代码是一样的。 draw rect 方法将 currentBitmap 绘制到屏幕上。我想再补充一下,当我以中等速度移动鼠标时它可以完美运行。
【问题讨论】:
标签: objective-c ios core-graphics uitouch