円の画像を表示するUIView(インタラクティブな状態を維持する必要がある)で、円の外側の領域がユーザーインタラクションを受け取らないようにするには、そのビューの下にある他のUIが引き続きアクティブになるようにするにはどうすればよいですか?
UIViewをCGPathでマスクしようとしましたが、役に立ちませんでした。
何か案は?
円の画像を表示するUIView(インタラクティブな状態を維持する必要がある)で、円の外側の領域がユーザーインタラクションを受け取らないようにするには、そのビューの下にある他のUIが引き続きアクティブになるようにするにはどうすればよいですか?
UIViewをCGPathでマスクしようとしましたが、役に立ちませんでした。
何か案は?
タッチ イベントはビュー階層でバブル ダウンするため、UIView として、タッチ イベントが自分に関連しているかどうかを確認できます。タッチ イベントが単に NO を返すだけでなく、そのイベントが階層内の次の UIView に移動するかどうかを確認できます。
- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event
{
for (UIView * view in [self subviews]) {
if ([view pointInside:[self convertPoint:point toView:view] withEvent:event]) {
return YES;
}
}
return NO;
}
UI イベントを受け取る要素を円の外に置かないでください。これが避けられない場合は、円の外側にあるすべての要素を必要なだけ無効にしてください。