これは奇妙なシナリオですが、重複する 2 つの UIView があり、一方を他方の上に表示する必要がありますが、入力を受け取る際には下の方を優先します。それが理にかなっているなら。必要に応じて明確にすることができます。
できればInterface Builderでこれを行いたいのですが、それが不可能だと仮定して、プログラムで行う方法はありますか?
編集:@ jaydee3のおかげでうまくいきました。hitTest:
次のように UIView1のメソッドをオーバーライドするだけです。UIView2 はself.otherView
.
- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event
{
if (self.otherView && [self.otherView pointInside:[self.otherView convertPoint:point fromView:self] withEvent:event])
{
return [self.otherView hitTest:[self.otherView convertPoint:point fromView:self] withEvent:event];
}
return [super hitTest:point withEvent:event];
}