2011-03-01 108 views
1

我相信這個問題已經在很多地方得到了回答,但我不知道要搜索什麼關鍵字來回答這個問題。如果任何人都可以將我與那個很棒的答案聯繫起來。iOS UIImageView分層問題

我不知道如何控制哪些UIImageViews(這些都是subviewed到相同的視圖)在視覺上覆蓋其他人。換句話說,如果我將UIImageView子視圖與另一個UIImageView視圖相同的位置,則添加的第二個視圖始終覆蓋第一個視圖。我不知道如何在UI編輯器或代碼中執行此操作。到目前爲止,我一直按照我希望他們出現的順序添加它們,但我不能總是這樣做。特別是如果我需要設置UIImageView這是一個IBOutlet,我需要它在我以編程方式添加的所有UIImageView上。

有人可以告訴我如何以編程方式做到這一點,並可能如何在UI編輯器中設置值?謝謝。

回答

7

的UIView有幾個API來處理這些問題:

  • 在添加子視圖:
    • insertSubview:aboveSubview:
    • insertSubview:atIndex:
    • insertSubview:belowSubview:
  • 移動子視圖圍繞其Z排序:
    • bringSubviewToFront:
    • sendSubviewToBack:
    • exchangeSubviewAtIndex:withSubviewAtIndex:

更多關於所有這些細節可以在UIView documentation中找到(其中的UIImageView是一個子類)。

+0

我希望我能給予好評的答案兩次! – Arel 2013-03-15 03:30:16

0

這是在UIView layer完成的,並不特定於UIImageViews。

視圖可以編程「relayered」用下面的UIView方法:

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

爲了這樣做是爲了在XIB在界面生成器,重新排序在該視圖中列出的觀點,底行是最前面的對象:

xib view