使用 Objective-C 中的 Cocoa Touch,我正在寻找绘制目标图像的最佳方式(即圆圈中的圆圈,很简单),然后将用户的触摸记录在图像上,(可能是 x 或 +标记),更重要的是,在内存中供以后重新绘制。
当用户长时间按住手指以实现更精确的定位时,我将使用放大镜,这是我通过阅读和试验CoffeeShopped文章和来源了解到的。
使用 Objective-C 中的 Cocoa Touch,我正在寻找绘制目标图像的最佳方式(即圆圈中的圆圈,很简单),然后将用户的触摸记录在图像上,(可能是 x 或 +标记),更重要的是,在内存中供以后重新绘制。
当用户长时间按住手指以实现更精确的定位时,我将使用放大镜,这是我通过阅读和试验CoffeeShopped文章和来源了解到的。
创建uiview的子类并实现drawRect
- (void)drawRect:(CGRect)rect {
CGRect circleRect = self.bounds;
CGFloat circleWidth = circleRect.size.width / 5.0;
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(context, [[UIColor redColor] CGColor]);
CGContextFillEllipseInRect(context, circleRect);
circleRect = CGRectInset(circleRect, circleWidth, circleWidth);
CGContextSetFillColorWithColor(context, [[UIColor whiteColor] CGColor]);
CGContextFillEllipseInRect(context, circleRect);
circleRect = CGRectInset(circleRect, circleWidth, circleWidth);
CGContextSetFillColorWithColor(context, [[UIColor redColor] CGColor]);
CGContextFillEllipseInRect(context, circleRect);
}
会画
您应该将您的视图背景颜色设置[UIColor clearColor]
为使其边缘不黑。
您也可以将其调整为循环,但这是我可以展示的最简单的示例代码。
注意:为了简化弧/非弧代码,我没有重复使用颜色
如果您想重用该图像并重新绘制它(例如 - 当用户触摸它时),您应该将该绘图缓存为图像。
1)绘制你的目标(如下所述)
2)从当前上下文创建图像
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
3)保存该图像并下次重复使用
- (void)drawRect:(CGRect)rect {
if(image == nil) {
image = [self drawTargetImage]; //use code that mentioned below to create image
}
[image drawAtPoint:CGPointMake(10, 10)];
}