親ビューのuserInteractionEnabled = NOの場合、userInteractionEnabledプロパティがYESに設定されていてもサブビューはtouchイベントを受け付けません。親ビューでiOSでuserInteractionEnabledがNOに設定されている場合の接触方法
まだサブビューでタッチイベントを取得する方法はありますか?
親ビューのuserInteractionEnabled = NOの場合、userInteractionEnabledプロパティがYESに設定されていてもサブビューはtouchイベントを受け付けません。親ビューでiOSでuserInteractionEnabledがNOに設定されている場合の接触方法
まだサブビューでタッチイベントを取得する方法はありますか?
タッチがパススルーさせますが、そのサブビューがタッチを扱う与え、YESにそのビューにuserInteractionEnabledをしましょうと、代わりに、このスニペットを使用するビューを取得するには、次の
-(id)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
id hitView = [super hitTest:point withEvent:event];
if (hitView == self) return nil;
else return hitView;
}
出典:http://cocoaheads.tumblr.com/post/2130871776/ignore-touches-to-uiview-subclass-but-not-to-its
親ビューのuserInteractionEnabledプロパティをNOに設定すると、サブビューのuserInteractionEnabledプロパティも暗黙的にNOに設定されます。あなたが記述したアプローチを使用してサブビューにタッチイベントを表示する方法はわかりませんが、おそらく、ユーザーが対話したいビューをオーバーレイするだけのビューを作成できますが、それらの親ではありません再生回数
を回避策は、親ビュー全体のユーザー操作を無効にするのではなく、ボタンなどのユーザー操作を無効にすることです。
このソリューションを検討することができます:http://stackoverflow.com/a/35592676/913347 – ishahak