我有两个视图,其中一个包含一个按钮:
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];
只有当我按此顺序添加子视图时(首先是视图 1,其次是视图 2),我的按钮(在视图 1 内)才不会响应 UIControlEventTouchUpInside 事件。当我颠倒顺序时,一切正常:
[parentView addSubview:view2];
[parentView addSubview:view1];
尽管 UIControlEventTouchUpInside 事件不起作用,但即使在第一种情况下(view1 显示在 view2 的顶部),视觉上也一切正常。addSubview 消息的顺序仅影响 UIControlEventTouchUpInside 事件。
补充:我的问题是:为什么只有一种描述的方式起作用?