iOS addSubview & removeFromSuperview

view的這概就有點像是
Photoshop的layer
Android的layout
Flash的symbol

app內可不像flash不想要這個symbol就丟進垃圾桶
要用時再直接從library拉出來
(當然全都使用Interface builder是有點類似啦)

要使用code來丟入場景中所使用的就是"addSubview"
如以下範例
[self.view addSubview:myView];


加入後會自動將myView的retainCount +1
如果原本的view不需要用上請記得釋放掉


那該怎樣知道現在這個View內有多少View
下面這範例會把內容全都println出來
NSLog(@"view = %@", [self.view subviews]);



知道有多少後該怎樣移除也是個重點
以下這就是將你指定的view移除
[myView removeFromSuperview];



那假設view中的按鈕很多看起來很礙眼想要一次移除
for(UIView *subview in [self.tabBarController.view subviews]) {
if([subview isKindOfClass:[UIButton class]]) {
NSLog(@"remove UIButton");
[subview removeFromSuperview];
} else {
// Do nothing - not a UIButton or subclass instance
}
}


isKindOdClass顧名思義就是找出跟他相同class的東西


參考資料
iOS Developer Library
iOS - UIView Class Reference
iOS - UIViewController Class Reference

沒有留言:

張貼留言