標籤:
一些 UIView 中管理 Subview 常用的方法 (2013-01-22 10:04:40)
| 標籤: ios subview it |
分類: 關於IOS學習 |
一些 UIView 中管理 Subview 常用的方法
一個 UIView 裡面可以包含許多的 Subview(其他的 UIView),而這些 Subview 彼此之間是有所謂的階層關係,這有點類似繪圖軟體中圖層的概念,下面程式碼示示範了幾個在管理圖層(Subview)上常用的方法,其程式碼如下。
首先是大家最常使用的新增和移除 Subview。
- //將Subview從當前的UIView中移除
- [Subview removeFromSuperview];
-
- //替UIView增加一個Subview
- [UIView addSubview:Subview];
在 UIView 中將 Subview 往前或是往後移動一個圖層,往前移動會覆蓋住較後層的 Subview,而往後移動則會被較上層的 Subview 所覆蓋。
- //將Subview往前移動一個圖層(與它的前一個圖層對調位置)
- [UIView bringSubviewToFront:Subview];
-
- //將Subview往後移動一個圖層(與它的後一個圖層對調位置)
- [UIView sendSubviewToBack:Subview];
在 UIView 中使用索引 Index 交換兩的 Subview 彼此的圖層層級。
- //交換兩個圖層
- [UIView exchangeSubviewAtIndex:indexA withSubviewAtIndex:indexB];
使用 Subview 的變數名稱取得它在 UIView 中的索引值(Index )。
- //取得Index
- NSInteger index = [[UIView subviews] indexOfObject:Subview名稱];
替 Subview 加上 NSInteger 的註記 (Tag),好讓之後它們分辨彼此。
- //加上註記
- [Subview setTag:NSInteger];
最後是取得 UIView 中所有的 Subview,呼叫此方法會傳回一個 NSArray,並以由後往前的順序列出這些 Subview,中是列出範例圖片裡 Root 中所有的 Subview。
- //取的UIView下的所有Subview
- [UIView subviews]
addSubview和insertSubview的區別
addSubview 是將view加到所有層的最頂層
相當於將insertSubview的atIndex參數設定成view.subviews count
即
[view addSubview:oneview] == [view insertSubview:oneview atIndex:view.subviews count]
addSubview是加到最後
insertSubview是加到指定的位置
如果要移除一個 UIView 的所有子視圖,SDK 裡沒有 remove all 之類的方法。可以用 for loop 迴圈調用 – removeFromSuperview 來移除
例如:
for(UIView *view in [self.view subviews])
{
[view removefromsuperview]
}
ios 開發日記 9 - 一些 UIView 中管理 Subview 常用的方法