1

我是 iOS 开发新手。

使用 Core Graphics/UIKit 绘制时出现问题。我想在 Window 中实现类似绘制形状的功能。

我使用这个来源:https ://github.com/JagCesar/Simple-Paint-App-iOS ,并添加新功能。

当 touchesMoved 时,我根据 touchesBegan 时的点和当前的触摸点绘制一个形状。它绘制了所有的形状。

    - (void)drawInRectModeAtPoint:(CGPoint)currentPoint
    {
    UIGraphicsBeginImageContext(self.imageViewDrawing.frame.size);
    CGContextRef context = UIGraphicsGetCurrentContext();

    [self.currentColor setFill];

    [self.imageViewDrawing.image drawInRect:CGRectMake(0, 0, self.imageViewDrawing.frame.size.width, self.imageViewDrawing.frame.size.height)];

    CGContextMoveToPoint(context, self.beginPoint.x, self.beginPoint.y);
    CGContextAddLineToPoint(context, currentPoint.x, currentPoint.y);
    CGContextAddLineToPoint(context, self.beginPoint.x * 2 - currentPoint.x, currentPoint.y);
    CGContextAddLineToPoint(context, self.beginPoint.x, self.beginPoint.y);
    CGContextFillPath(context);

    self.currentImage = UIGraphicsGetImageFromCurrentImageContext();
    self.imageViewDrawing.image = self.currentImage;
    UIGraphicsEndImageContext();
    }

我的意思是,我只想创建一个形状,当touchesBegan时,应用程序记录点,当touchesMoved时,形状被触摸缩放,当touchesEnd时,将形状绘制到ImageContex

希望你能给我一些建议。谢谢你。

4

1 回答 1

0

您可能希望从上下文中提取此功能。当您使用图像时,请使用图像视图。在触摸开始时,创建图像和图像视图。将图像视图框架设置为尺寸为 {1, 1} 的触摸点。随着触摸的移动,通过更改其 . 来移动/缩放图像视图frame。当触摸结束时,使用起点和终点将图像渲染到上下文中(应该与frame图像视图的最终相同)。

这样做意味着您不会在上下文中添加任何需要在收到下一次触摸更新时再次删除的内容。上述方法将与 aCALayer而不是图像视图类似地工作。您还可以在视图上使用 atransform查看解决方案。

于 2013-09-26T15:10:25.667 回答