同じサイズの 3 つの UIView が積み重なっています。最上部は透明で、タッチの検出にのみ使用されます。検出されたタッチの種類によって、他の 2 つの基になるビューのどちらでタッチ イベントを受け取りたいかが決まります。最上位のビューでのタッチが完了したら、タッチ イベントを正しい下位ビューに転送する必要があります。どうやってやるの?
編集 - タッチ検出コードを追加しています。これは MainViewController 内にあり、そのビューには 3 つのサブビューがすべて含まれています。
-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
for (UITouch *touch in touches)
{
if (touch.view == self.touchOverlay) {
CGPoint touchLocation = [touch locationInView:touch.view];
//do a bunch of math to determine which view should get the touches.
if (viewAshouldGetTouches) //forward to viewA
if (viewBshouldGetTouches) //forward to viewB
}
}
}