UIView 查詢subview 和 層次

2021-07-29 07:10:32 字數 3195 閱讀 6196

cgrect frame =  [[uiscreen mainscreen] bounds];

uiview *views = [[uiview alloc]init];

views.frame = cgrectmake(10, 30,frame.size.width-20 , frame.size.height-20-20);

views.backgroundcolor = [uicolor bluecolor];

[self.view addsubview:views];

uiview *superview = views.superview;

superview.backgroundcolor = [uicolor greencolor];

uiview *view1 = [[uiview alloc]init];

view1.tag = 1;

view1.frame = cgrectmake(20, 20, 30, 30);

view1.backgroundcolor = [uicolor yellowcolor];

[views addsubview:view1];

uiview *view2 = [[uiview alloc]init];

view2.tag = 2;

view2.frame = cgrectmake(30,30, 100, 20);

view2.backgroundcolor = [uicolor purplecolor];

view2.alpha= 5.0f;

[views addsubview:view2];

//找子檢視的方法

nsarray *subviews = [views subviews];

for (uiview *uiview in subviews)

}//查詢子檢視的方法

uiview *subview = [views viewwithtag:2];

subview.backgroundcolor = [uicolor graycolor];

//交換兩個層的檢視

[views exchangesubviewatindex:1 withsubviewatindex:0];

uiview *view3 = [[uiview alloc]init];

view3.frame = cgrectmake(20, 20, 60, 60);

view3.backgroundcolor = [uicolor blackcolor];

//指定插入某個層

[views insertsubview:view3 atindex:1];

[views insertsubview:view3 abovesubview:views];

[views insertsubview:view3 belowsubview:view1];

//直接放到最頂層或最底層

[views bringsubviewtofront:view3];

[views sendsubviewtoback:view3];

獲取 父類view 控制項

uiview

*superview = views.

superview;

查詢子檢視的方法

方法1:

通過父類呼叫subviews方法,獲取所有子類view的陣列,根據條件找到指定的subview

nsarray

*subviews = [views

subviews];

for(uiview

*uiview

insubviews)

}

方法2:

通過對view設定tag,並通過父控制項呼叫 viewwithtag方法獲取指定subview

uiview

*subview = [views

viewwithtag:2

]; subview.

backgroundcolor

= [uicolor

graycolor

];

交換兩個層的檢視

通過呼叫方法,可以講子view的檢視層交換位置    

[views

exchangesubviewatindex:1

withsubviewatindex:0

];

指定插入某個層

將控制項插入指定的層

uiview

*view3 = [[

uiview

alloc

]init];

view3.

frame

=cgrectmake(20

,20, 60,60

); view3.

backgroundcolor

= [uicolor

blackcolor];

//指定插入某個層

[views

insertsubview

:view3

atindex:1

];//插入在位置1

[views

insertsubview

:view3

abovesubview

:views];//插入在views的最上層

[views

insertsubview

:view3

belowsubview

:view1];//插入在views的最下層

直接放到最頂層或最底層

將view3移到最頂層或最底層    

[views

bringsubviewtofront

:view3];

[views

sendsubviewtoback

:view3];

UIView相關知識

1 在mac os中nswindow的父類是nsresponder,而在i os 中uiwindow 的父類是uiview。程式一般只有乙個視窗但是會又很多檢視。2 uiview的作用 描畫和動畫,檢視負責對其所屬的矩形區域描畫 布局和子檢視管理 事件處理 可以接收觸控事件 事件資訊的載體 等等。3...

UIView 設定圓角

直接看 viewt.layer.cornerradius 10 設定那個圓角的有多圓 viewt.layer.borderwidth 10 設定邊框的寬度,當然可以不要 viewt.layer.bordercolor uicolor redcolor cgcolor 設定邊框的顏色 viewt.la...

UIView屬性clipsTobounds的應用

view新增view,並剪邊 uiview屬性clipstobounds的應用 如題,有兩個view view1,view2 view1新增view2到其中,如果view2大於view1,或者view2的座標不在view1的範圍內,view2是蓋著view1的,意思就是超出的部份也會畫出來 uivi...