我有4个UIView(每个都有一个可见的部分在屏幕上),我希望它们可以拖动。 我正在添加它们就像控制器上的任何其他视图一样
addSubview:dragViewTop
addSubview:dragViewBottom
addSubview:dragViewRight
addSubview:dragViewLeft
我的问题是,如果我将一个视图拖到另一个视图的顶部,即使我将其更改为layer.zPosition
,我也可以拖动一个应该位于下方的视图。
根据添加的视图的顺序给出了这种行为(我认为,不确定)。
我希望我拖动的视图保持在最顶层。有任何想法吗? 我希望我能说清楚。
答案 0 :(得分:3)
您需要使用这些视图的超级视图来处理视图的顺序,而不是它们的图层的zPosition属性。
使用superview的以下方法排列子视图的深度。看来你可能只需要第一种方法。
- (void)bringSubviewToFront(UIView *)view
- (void)sendSubviewToBack(UIView *)view
- (void)exchangeSubviewAtIndex:(NSInteger)index1 withSubviewAtIndex:(NSInteger)index2
答案 1 :(得分:1)
将view
置于顶部:
[view.superview bringSubviewToFront:view];
(注意:这是view.superview
子视图的前,因此超级视图前的视图将保留在前面)