0

2 つのビューがあり、そのうちの 1 つにボタンが含まれています。

UIView *view1, *view2;
UIButton *button;
[view1 addSubview:button];

どちらも親ビューの上にあり、view2 が上にあります (zPosition 値が大きくなっています)。

UIView *parentView;
view1.layer.zPosition = 10;
view2.layer.zPosition = 0;
[parentView addSubview:view1];
[parentView addSubview:view2];

この順序でサブビューを追加した場合のみ (view1 が最初、view2 が 2 番目)、ボタン (view1 内) が UIControlEventTouchUpInside イベントに応答しません。順序を逆にすると、すべてが機能しました。

[parentView addSubview:view2];
[parentView addSubview:view1];

UIControlEventTouchUpInside イベントは機能しませんでしたが、最初のケース (view1 が view2 の上に表示された) でも視覚的にはすべて問題ありませんでした。addSubview メッセージの順序は、UIControlEventTouchUpInside イベントにのみ影響を与えました。

追加: 私の質問は: 説明されている方法の 1 つだけが機能するのはなぜですか?

4

1 に答える 1