2011-03-13 90 views
6

我有兩個視圖(UIView)設置:父視圖和子視圖。根據需要,子視圖顯示在父視圖的頂部。不過,我現在需要添加子視圖,我希望顯示在子視圖的下方,但在父視圖的上方。在添加新子視圖的同時保持第一個子視圖在頂部的簡單方法是什麼?我想保留新添加的子視圖顯示順序匹配插入順序。如何讓uiview高於其他視圖

+0

檢查[this](http://stackoverflow.com/questions/1519141/difference-between-addsubview-and-insertsubview-in-uiview-class)問題。 – phi 2011-03-13 09:11:13

回答

10

使用以下任何一種UIView方法來控制深度。

– bringSubviewToFront: 
– sendSubviewToBack: 
– insertSubview:atIndex: 
– insertSubview:aboveSubview: 
– insertSubview:belowSubview: 

這是從在視圖層次結構和子視圖管理部分的View Programming Guide文檔採取

每個上海華存儲它的子視圖以有序陣列和陣列中的順序也影響每個子視圖的可見性。如果兩個兄弟子視圖彼此重疊,則最後添加的子視圖(或移動到子視圖數組的末尾)會出現在另一個之上。
1

我建議爲addSubview創建包裝方法。例如:

- (void)insertSubviewBetweenParentAndChild:(UIView *)newChild { 
    [self insertSubview:newChild aboveSubview:parentView]; 
} 
相關問題