iOS:检测包含多个图像的UIImageView中的图像触摸

时间:2014-12-09 14:32:32

标签: ios objective-c uiimageview touch collision-detection

我有一个UIImageView由两个图像组成,透明通道被激活。

视图看起来像这样: image

我希望能够准确地检测出中心圆内的触摸,并将它们与outern圈中的触摸区分开来。

我正在考虑基于两个圆之间差异的碰撞检测算法。首先在outern层测试,看看是否有碰撞,然后是内层。如果在内层,则激活内部按钮,否则激活outern按钮。

有任何帮助或建议吗?

我应该创建一个github仓库,这样每个人都可以参与其中吗?

1 个答案:

答案 0 :(得分:1)

这里有些东西可以帮助你:

    UIImageView *myImageView;
 // In viewDidLoad, the place you are created your UIImageView place this:

myImageView.userInteractionEnabled = YES;
UITapGestureRecognizer *tapInView = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapInImageView:)];
[myImageView addGestureRecognizer:tapInView];

}

-(void)tapInImageView:(UITapGestureRecognizer *)tap
{
CGPoint tapPoint = [tap locationInView:tap.view];

CGPoint centerView = tap.view.center;

double distanceToCenter = sqrt((tapPoint.x - centerView.x)*(tapPoint.x - centerView.x) + (tapPoint.y - centerView.y)*(tapPoint.y - centerView.y) );
if (distanceToCenter < RADIUS) {
    // It's in center
} else {
    // Touch outside
}