内部にいくつかの奇妙な形の png と重なっている 2 つの uiview があります。各 uiview の上に目に見えない形を描き、それらの形をタップしたかどうかを検出したいと考えています。そうしないと、オーバーラップによってタップが表示されます。以下のコードでこれが可能になると思いましたが、まったくタッチが表示されません。
-(void)drawRect:(CGRect)rect {
quadrantOnePath = CGPathCreateMutable();
CGPathMoveToPoint(quadrantOnePath, NULL, 30, 214);
CGPathAddLineToPoint(quadrantOnePath, NULL, 281, 47);
CGPathAddLineToPoint(quadrantOnePath, NULL, 493, 51);
CGPathAddLineToPoint(quadrantOnePath, NULL, 306, 376);
CGPathCloseSubpath(quadrantOnePath);
}
//in viewdidload
UITapGestureRecognizer *tapBlueRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(viewBlueFloorplans:)];
[tapBlueRecognizer setNumberOfTapsRequired:1];
[tapBlueRecognizer setDelegate:self];
[floorBlueHolderview addGestureRecognizer:tapBlueRecognizer];
// viewbluefunction
-(void)viewBlueFloorplans:(id)sender meso:(UIGestureRecognizer *)recognizer {
CGPoint factor = [recognizer locationOfTouch:0 inView:self.view];
bool processTouch = CGPathContainsPoint(quadrantOnePath, NULL, factor, true);
if(processTouch) {
NSLog(@"tap_viewBLU");
}
}