UIView 簡(jiǎn)介
什么是UIView
UIView
是窗口上的一塊區(qū)域
,是iOS中所有控件的基類
竿裂,我們?cè)赼pp中所有能看見的都是直接或間接繼承與UIView的.我們把UIView
叫做視圖
.
UIView的作用
- 負(fù)責(zé)內(nèi)部區(qū)域的內(nèi)容渲染玉吁。
- 負(fù)責(zé)內(nèi)部區(qū)域的觸摸事件。
- 管理本身的所有子視圖腻异。
- 處理基本的動(dòng)畫进副。
UIView創(chuàng)建與使用
創(chuàng)建UIView
//通過frame創(chuàng)建View
UIView *view = [[UIView alloc] initWithFrame:CGRectMake(100, 100, 200, 200)];
//添加到父視圖中
[self.window addSubview:view];
視圖是一塊區(qū)域,所以創(chuàng)建UIView的同時(shí)需要設(shè)置他的位置
和大小
悔常,frame
是一個(gè)包含位置和大小的結(jié)構(gòu)
體影斑;
UIView 的基本屬性
//設(shè)置視圖的背景顏色
view.backgroundColor = [UIColor redColor];
//修改視圖的大小或者位置
view.frame = CGRectMake(200, 100, 200, 200);
//設(shè)置視圖的透明度[0.0, 1.0]
view.alpha = 0.5;
//設(shè)置是否隱藏
view.hidden = NO;
//設(shè)置視圖的標(biāo)簽
view.tag = 100;
//中心點(diǎn)
view.center = self.window.center;
注意:這里特別說下frame
, 他是UIView一個(gè)非常重要的屬性机打,決定了UIView的大小和位置矫户;frame中設(shè)置的位置是以UIView的父視圖
坐標(biāo)系為基準(zhǔn),需要特別注意的是不可以修改frame中的某個(gè)成員變量残邀,只能整體修改frame
子視圖管理
- NSArray *subviews
- 管理所有的子視圖(控件)
- 數(shù)組元素的順序決定著子控件的顯示層級(jí)順序(下標(biāo)越大的皆辽,越顯示在上面)
- 所有子視圖的管理都是對(duì)
subviews
數(shù)組的管理
添加視圖
UIView *view2 = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];
view2.backgroundColor = [UIColor greenColor];
view2.tag = 200;
//將view2添加到view上
[view addSubview:view2];
通過上述代碼添加后,view2
是view
的子視圖芥挣,view
是view2
的父視圖;
所有視圖之間有層次級(jí)別關(guān)系驱闷,越是在后添加的視圖空免,越顯示在上面空另,前面添加的在下面
插入視圖
//將一個(gè)yView插入到view的子視圖中,序號(hào)為0的位置
//序號(hào)越小越靠近下面蹋砚,序號(hào)越大越靠近上面
//序號(hào)的范圍[0,子視圖的個(gè)數(shù))
[view insertSubview:yView atIndex:0];
//將oView插入到view的子視圖中view2的下面
[view insertSubview:oView belowSubview:view2];
//將人View插入到view的子視圖中痹换, yView的上面
[view insertSubview:rView aboveSubview:yView];
刪除視圖
UIView中子視圖管理和數(shù)組對(duì)元素的管理不一樣匙姜,他不能通過父視圖
去刪除子視圖
,只能子視圖自己
將自己從父視圖中刪除.
//view2將自己從父視圖中移除
[view2 removeFromSuperview];
獲取視圖
視圖沒有名字,但他有標(biāo)識(shí)
历恐,所以要想獲取視圖中的指定子視圖
弱贼,我們可以通過子視圖的標(biāo)識(shí)來獲取,方法如下:
//獲取view下子視圖標(biāo)識(shí)為200的視圖
UIView *subView = [view viewWithTag:200];
更改視圖的顯示層級(jí)
//通過父視圖,將某個(gè)子視圖在最上面顯示
[view bringSubviewToFront:yView];
//通過父視圖责嚷, 將某個(gè)子視圖在最下顯示
[view sendSubviewToBack:view2];
如果覺得文章不錯(cuò)蒿秦,請(qǐng)幫忙點(diǎn)擊文章下方的喜歡
5凹谩!
你的支持將是對(duì)我最好的鼓勵(lì), 謝謝4挤荨<诠!