2

我想在照片上覆盖一个盒子形状,并允许用户选择每个角,然后将角拖到他们想要的位置。

我可以使用 4 个不可见的按钮(代表每个角)来响应拖动事件以获取每个角的 x、y 点,但是在 xcode 中是否有一些线条绘制功能可用,而无需触及任何游戏 api 类?我想我想在 UIView 上画线。

非常感谢,-代码

4

1 回答 1

2

创建一个子类UIView来表示您的视图。UIImageView在您的视图中添加一个。这将保存带有用户绘图的图像。

UIView在子类中启用用户交互。

self.userInteractionEnabled = YES;

通过在您的子类中实现此方法来检测开始水龙头:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
    // We are starting to draw
    // Get the current touch.
    UITouch *touch = [touches anyObject];    
    startingPoint = [touch locationInView:self];
}

检测最后一次点击以绘制直线:

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
    UITouch *touch = [touches anyObject];    
    endingPoint = [touch locationInView:self];

    // Now draw the line and save to your image
    UIGraphicsBeginImageContext(self.frame.size);

    CGContextRef context = UIGraphicsGetCurrentContext();
    CGContextSetLineWidth(context, 10);
    CGContextMoveToPoint(context, NULL, startingPoint.x, startingPoint.y);
    CGContextAddLineToPoint(context, NULL, endingPoint.x, endingPoint.y);
    CGContextSetRGBFillColor(context, 255, 255, 255, 1);
    CGContextSetRGBStrokeColor(context, 255, 255, 255, 1);
    CGContextStrokePath(context);
    self.image = UIGraphicsGetImageFromCurrentImageContext();
    CGContextRelease(context);
}
于 2012-07-26T09:54:47.207 回答