我有一个UIImageView由两个图像组成,透明通道被激活。
视图看起来像这样: image
我希望能够准确地检测出中心圆内的触摸,并将它们与outern圈中的触摸区分开来。
我正在考虑基于两个圆之间差异的碰撞检测算法。首先在outern层测试,看看是否有碰撞,然后是内层。如果在内层,则激活内部按钮,否则激活outern按钮。
有任何帮助或建议吗?
我应该创建一个github仓库,这样每个人都可以参与其中吗?
答案 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
}