objective-c相对于imageView的tap位置

时间:2012-12-21 17:02:30

标签: objective-c imageview coordinates relative

这可能是一个初学者的问题,因为它似乎相对容易实现......我希望有人可以告诉我如何获得X&水龙头的Y坐标,但相对于图像...

我有一个保存3分的图像...当用户点击时我想确定他们是否在我保存的点附近点击...当然我将不得不使用一些数学来计算半径,因为它可能永远不会是确切的,但我希望这是一项容易完成的任务。

提前感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

你在这里没有给我们很多东西,但总的来说,我建议你在UITapGestureRecognizer添加UIImageView。根据您实例化视图的方式,值得注意的是视图的像素坐标可能与图像坐标不完全匹配。以下是添加手势识别器的代码:

tapGestureRecognizer_ = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTap:)];
[tapGestureRecognizer_ setNumberOfTapsRequired:1];
[tapGestureRecognizer_ setNumberOfTouchesRequired:1];
[tapGestureRecognizer_ setEnabled:YES];
[imageView_ addGestureRecognizer:tapGestureRecognizer_];

然后,(在这种情况下在handleTap:中)你会得到像这样的像素坐标:

- (void)handleTap:(UITapGestureRecognizer *)sender
{
    CGPoint tapPoint = [sender locationInView:imageView_];
}

答案 1 :(得分:0)

如果您使用手势识别器检测点按,只需使用locationInView:功能并提供您希望将触摸位置翻译成的视图。

CGPoint location = [tapGestureRecognizer locationInView:imageView];