重叠的UIViews

时间:2011-03-28 19:39:52

标签: iphone uiview draggable

我有4个UIView(每个都有一个可见的部分在屏幕上),我希望它们可以拖动。 我正在添加它们就像控制器上的任何其他视图一样

addSubview:dragViewTop
addSubview:dragViewBottom
addSubview:dragViewRight
addSubview:dragViewLeft

我的问题是,如果我将一个视图拖到另一个视图的顶部,即使我将其更改为layer.zPosition,我也可以拖动一个应该位于下方的视图。 根据添加的视图的顺序给出了这种行为(我认为,不确定)。

我希望我拖动的视图保持在最顶层。有任何想法吗? 我希望我能说清楚。

2 个答案:

答案 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 子视图的前,因此超级视图前的视图将保留在前面)