我想在照片上覆盖一个盒子形状,并允许用户选择每个角,然后将角拖到他们想要的位置。
我可以使用 4 个不可见的按钮(代表每个角)来响应拖动事件以获取每个角的 x、y 点,但是在 xcode 中是否有一些线条绘制功能可用,而无需触及任何游戏 api 类?我想我想在 UIView 上画线。
非常感谢,-代码
我想在照片上覆盖一个盒子形状,并允许用户选择每个角,然后将角拖到他们想要的位置。
我可以使用 4 个不可见的按钮(代表每个角)来响应拖动事件以获取每个角的 x、y 点,但是在 xcode 中是否有一些线条绘制功能可用,而无需触及任何游戏 api 类?我想我想在 UIView 上画线。
非常感谢,-代码
创建一个子类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);
}