新聞中心
IOS學(xué)習(xí)筆記(五)之視圖的層次結(jié)構(gòu),查找,常用屬性與清理學(xué)習(xí)
成都創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比青云譜網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式青云譜網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋青云譜地區(qū)。費(fèi)用合理售后完善,十多年實(shí)體公司更值得信賴。
Author:hmjiangqq
Email:[email protected]
(一):視圖的層次結(jié)構(gòu)
1.UIView層次結(jié)構(gòu)可以理解為"視圖樹"-View Hierarchy
2.一個(gè)視圖就是一個(gè)容器,當(dāng)一個(gè)視圖包含其他視圖的時(shí)候,兩個(gè)視圖之間就建立了
一個(gè)父子復(fù)習(xí)。被包含的視圖被稱為"子視圖(subview)",包含的視圖稱為“父視圖或”
超視圖(superview)"
3.從視覺上看,子視圖隱藏了俯視圖的內(nèi)容,設(shè)置透明屬性可以看到父視圖的內(nèi)容
4.每個(gè)父視圖都有一個(gè)有序的數(shù)組存儲(chǔ)著它的子視圖,存儲(chǔ)的順序就會(huì)影響到每個(gè)子視圖
的顯示效果,比如:兩個(gè)兄弟視圖重疊在一起,后來被加入的視圖就會(huì)出現(xiàn)在另外視圖的上面
5.一個(gè)視圖可以嵌入多個(gè)subview,但是只能有一個(gè)superview
視圖的常用方法
當(dāng)調(diào)用addSubView的時(shí)候,會(huì)對(duì)其進(jìn)行保留,相當(dāng)于retain了一個(gè)對(duì)象,當(dāng)調(diào)用removeFromSuperView時(shí)候
會(huì)進(jìn)行釋放該對(duì)象,相當(dāng)于release了該對(duì)象
基本的添加和刪除子視圖的方法
- (void)removeFromSuperview; - (void)insertSubview:(UIView *)view atIndex:(NSInteger)index; - (void)exchangeSubviewAtIndex:(NSInteger)index1 withSubviewAtIndex:(NSInteger)index2; - (void)addSubview:(UIView *)view; - (void)insertSubview:(UIView *)view belowSubview:(UIView *)siblingSubview; - (void)insertSubview:(UIView *)view aboveSubview:(UIView *)siblingSubview; - (void)bringSubviewToFront:(UIView *)view; - (void)sendSubviewToBack:(UIView *)view;
實(shí)例代碼:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease]; // Override point for customization after application launch. self.window.backgroundColor = [UIColor whiteColor]; [self.window makeKeyAndVisible]; UIView *view1=[[UIView alloc]initWithFrame:CGRectMake(60, 100, 200, 100)]; view1.backgroundColor=[UIColor redColor]; [self.window addSubview:view1]; [view1 release]; UIView *view2=[[UIView alloc]initWithFrame:CGRectMake(0, 0, 50, 50)]; view2.backgroundColor=[UIColor blueColor]; [self.window addSubview:view2]; [view2 release]; NSLog(@"view1 superview:%@",[view1 superview]); NSLog(@"view2 superview:%@",[view2 superview]); NSLog(@"self.window subViews:%d",[[self.window subviews]count]); return YES; }
運(yùn)行截圖:
(二):視圖的查找
1.UIView類中又一個(gè)tag屬性,通過這個(gè)tag屬性可以標(biāo)示一個(gè)視圖對(duì)象(整數(shù))
2.獲取的方法,viewWithTag:方法來檢索標(biāo)示過的子視圖:
[注]:如果tag值不設(shè)置,默認(rèn)的tag值為0;
設(shè)置和查找方法代碼如下:
UIView *view3=[[UIView alloc]initWithFrame:CGRectMake(60, 250, 200, 100)]; view3.tag=100; view3.backgroundColor=[UIColor yellowColor]; [self.window addSubview:view3]; [view3 release]; NSLog(@"view3:%@",view3); //通過tag值查找view UIView *myView=[self.window viewWithTag:100]; myView.alpha=0.1; NSLog(@"myView:%@",myView); return YES;
運(yùn)行截圖:
(三):常用屬性:
1.alpha //透明度
2.backgroundColor //背景顏色
3.subViews //子視圖集合
4.hidden //是否隱藏
5.tag //標(biāo)簽紙
6.superview //父視圖
7.multipleTouchEnabled //是否開啟多點(diǎn)觸摸
8.userInteractionEnabled //是否響應(yīng)觸摸事件
(四)自定義UIView
繼承UIView,創(chuàng)建對(duì)象
(五)視圖對(duì)象的清理
如果手動(dòng)創(chuàng)建一個(gè)視圖,分配了任何內(nèi)存,存儲(chǔ)了了任何對(duì)象的引用,都需要釋放資源,
必須實(shí)現(xiàn)dealloc方法。當(dāng)某個(gè)對(duì)象的引用計(jì)數(shù)為0,系統(tǒng)會(huì)調(diào)用其dealloc方法去釋放對(duì)象資源
切記不要手動(dòng)調(diào)用dealloc方法
-(void)dealloc{
//釋放自定義對(duì)象
[super dealloc];
}
文章名稱:IOS學(xué)習(xí)筆記(五)之視圖的層次結(jié)構(gòu),查找,常用屬性與清理學(xué)習(xí)
網(wǎng)頁路徑:http://fisionsoft.com.cn/article/ijdgci.html