iOS UIImageView分层问题

时间:2011-03-01 17:21:48

标签: ios uiimageview

我确信这个问题已在很多地方得到解答,但我不知道要搜索哪个关键字来回答这个问题。如果有人能把我联系到那个很棒的答案。

我不确定如何控制哪些UIImageViews(它们都是相同视图的子视图)在视觉上覆盖其他视图。换句话说,如果我将UIImageView子视图与另一个UIImageView位于同一位置,则添加的第二个将始终覆盖第一个。我不知道如何在UI编辑器或代码中执行此操作。到目前为止,我一直按照我希望它们出现的顺序添加它们,但我不能总是这样做。特别是如果我需要设置UIImageView这是一个IBOutlet,我需要它在我以编程方式添加的所有UIImageViews之上。

有人可以告诉我如何以编程方式执行此操作以及可能如何在UI编辑器中设置值吗?感谢。

2 个答案:

答案 0 :(得分:7)

UIView有几个API来处理这些问题:

  • 添加子视图时:
    • insertSubview:aboveSubview:
    • insertSubview:atIndex:
    • insertSubview:belowSubview:
  • 以z顺序移动子视图:
    • bringSubviewToFront:
    • sendSubviewToBack:
    • exchangeSubviewAtIndex:withSubviewAtIndex:

所有这些的更多细节可以在UIView documentation中找到(其中UIImageView是一个子类。)

答案 1 :(得分:0)

这是在UIView layer完成的,并不是特定于UIImageViews。

可以使用以下UIView方法以编程方式“重新分层”视图:

– addSubview:
– bringSubviewToFront:
– sendSubviewToBack:
– removeFromSuperview
– insertSubview:atIndex:
– insertSubview:aboveSubview:
– insertSubview:belowSubview:
– exchangeSubviewAtIndex:withSubviewAtIndex:

要在Interface Builder中对XIB执行此操作,请对此视图中列出的视图重新排序,底行是最前面的对象:

xib view