如何像 Facebook instagram 一样标记 imageview。 in ios(在图像视图上标记坐标)
How to tag imageview like Facebook instagram. in ios ( mark coordinates on imageview)
我想在 imageview 上标记一些东西并且必须存储在数据库中,当我从数据库中检索它时,我必须在 imageview 上显示相同的坐标 ta。
您在故事板(或代码)中创建了一个 UIImageView
,并在您的 viewController
中创建了一只鸟 属性:
@property (strong, nonatomic) UITapGestureRecognizer *tapGesture;
接下来,在viewDidLoad
初始化tapGesture:
self.tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSingleTapGesture:)];
self.tapGesture.delegate = self;
[self.view addGestureRecognizer:self.tapGesture];
接下来,为点击创建处理程序:
- (void)handleSingleTapGesture:(UITapGestureRecognizer *)tapGestureRecognizer {
CGPoint point = [tapGestureRecognizer locationInView:self.imageView];
float squareSize = 10;
UIGraphicsBeginImageContextWithOptions(self.imageView.frame.size, YES, 0);
[self.imageView.image drawInRect:CGRectMake(0, 0, self.imageView.frame.size.width, self.imageView.frame.size.height)];
CGContextMoveToPoint(UIGraphicsGetCurrentContext(), point.x-squareSize, point.y - squareSize);
CGContextAddLineToPoint(UIGraphicsGetCurrentContext(), point.x+squareSize, point.y-squareSize);
CGContextAddLineToPoint(UIGraphicsGetCurrentContext(), point.x+squareSize, point.y+squareSize);
CGContextAddLineToPoint(UIGraphicsGetCurrentContext(), point.x-squareSize, point.y+squareSize);
CGContextAddLineToPoint(UIGraphicsGetCurrentContext(), point.x-squareSize, point.y-squareSize);
CGContextSetLineCap(UIGraphicsGetCurrentContext(), kCGLineCapRound);
CGContextSetLineWidth(UIGraphicsGetCurrentContext(), 1);
CGContextSetRGBStrokeColor(UIGraphicsGetCurrentContext(), 0,0,0,1);
CGContextSetBlendMode(UIGraphicsGetCurrentContext(),kCGBlendModeNormal);
CGContextStrokePath(UIGraphicsGetCurrentContext());
self.imageView.image = UIGraphicsGetImageFromCurrentImageContext();
[self.imageView setAlpha:1.0];
UIGraphicsEndImageContext();
}
此代码在 imageView 上绘制了一个正方形。现在您可以将 point
保存在您的数据库中,当您需要显示图像时绘制方形标签。
希望对你有所帮助。
我想在 imageview 上标记一些东西并且必须存储在数据库中,当我从数据库中检索它时,我必须在 imageview 上显示相同的坐标 ta。
您在故事板(或代码)中创建了一个 UIImageView
,并在您的 viewController
中创建了一只鸟 属性:
@property (strong, nonatomic) UITapGestureRecognizer *tapGesture;
接下来,在viewDidLoad
初始化tapGesture:
self.tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSingleTapGesture:)];
self.tapGesture.delegate = self;
[self.view addGestureRecognizer:self.tapGesture];
接下来,为点击创建处理程序:
- (void)handleSingleTapGesture:(UITapGestureRecognizer *)tapGestureRecognizer {
CGPoint point = [tapGestureRecognizer locationInView:self.imageView];
float squareSize = 10;
UIGraphicsBeginImageContextWithOptions(self.imageView.frame.size, YES, 0);
[self.imageView.image drawInRect:CGRectMake(0, 0, self.imageView.frame.size.width, self.imageView.frame.size.height)];
CGContextMoveToPoint(UIGraphicsGetCurrentContext(), point.x-squareSize, point.y - squareSize);
CGContextAddLineToPoint(UIGraphicsGetCurrentContext(), point.x+squareSize, point.y-squareSize);
CGContextAddLineToPoint(UIGraphicsGetCurrentContext(), point.x+squareSize, point.y+squareSize);
CGContextAddLineToPoint(UIGraphicsGetCurrentContext(), point.x-squareSize, point.y+squareSize);
CGContextAddLineToPoint(UIGraphicsGetCurrentContext(), point.x-squareSize, point.y-squareSize);
CGContextSetLineCap(UIGraphicsGetCurrentContext(), kCGLineCapRound);
CGContextSetLineWidth(UIGraphicsGetCurrentContext(), 1);
CGContextSetRGBStrokeColor(UIGraphicsGetCurrentContext(), 0,0,0,1);
CGContextSetBlendMode(UIGraphicsGetCurrentContext(),kCGBlendModeNormal);
CGContextStrokePath(UIGraphicsGetCurrentContext());
self.imageView.image = UIGraphicsGetImageFromCurrentImageContext();
[self.imageView setAlpha:1.0];
UIGraphicsEndImageContext();
}
此代码在 imageView 上绘制了一个正方形。现在您可以将 point
保存在您的数据库中,当您需要显示图像时绘制方形标签。
希望对你有所帮助。