iOS UI基礎控制項之UIView 詳解

來源:互聯網
上載者:User

標籤:

UIView 簡介什麼是UIView

UIView是視窗上的一塊地區,是iOS中所有控制項的基類,我們在app中所有能看見的都是直接或間接繼承與UIView的.我們把UIView叫做視圖.

UIView的作用
  • 負責內部地區的內容渲染。
  • 負責內部地區的觸摸事件。
  • 管理本身的所有子視圖。
  • 處理基本的動畫。
UIView建立與使用建立UIView
    //通過frame建立View    UIView *view = [[UIView alloc] initWithFrame:CGRectMake(100, 100, 200, 200)];    //添加到父視圖中    [self.window addSubview:view];

視圖是一塊地區,所以建立UIView的同時需要設定他的位置大小frame是一個包含位置和大小的結構體;

UIView 的基本屬性
    //設定視圖的背景顏色    view.backgroundColor = [UIColor redColor];    //修改視圖的大小或者位置    view.frame = CGRectMake(200, 100, 200, 200);    //設定視圖的透明度[0.0, 1.0]    view.alpha = 0.5;    //設定是否隱藏    view.hidden = NO;    //設定視圖的標籤    view.tag = 100;    //中心點    view.center = self.window.center;

注意:這裡特別說下frame, 他是UIView一個非常重要的屬性,決定了UIView的大小和位置;frame中設定的位置是以UIView的父視圖座標係為基準,需要特別注意的是不可以修改frame中的某個成員變數,只能整體修改frame

子視圖管理
  • NSArray *subviews
    • 管理所有的子視圖(控制項)
    • 數組元素的順序決定著子控制項的顯示層級順序(下標越大的,越顯示在上面)
    • 所有子視圖的管理都是對subviews數組的管理
添加視圖
    UIView *view2 = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];    view2.backgroundColor = [UIColor greenColor];    view2.tag = 200;    //將view2添加到view上    [view addSubview:view2];

通過上述代碼添加後,view2view的子視圖,viewview2的父視圖;
所有視圖之間有層次層級關係,越是在後添加的視圖,越顯示在上面,前面添加的在下面

插入視圖
    //將一個yView插入到view的子視圖中,序號為0的位置    //序號越小越靠近下面,序號越大越靠近上面    //序號的範圍[0,子視圖的個數)    [view insertSubview:yView atIndex:0];    //將oView插入到view的子視圖中view2的下面    [view insertSubview:oView belowSubview:view2];    //將人View插入到view的子視圖中, yView的上面    [view insertSubview:rView aboveSubview:yView];
刪除視圖

UIView中子視圖管理和數組對元素的管理不一樣,他不能通過父視圖去刪除子視圖,只能子視圖自己將自己從父視圖中刪除.

    //view2將自己從父視圖中移除    [view2 removeFromSuperview];
擷取視圖

視圖沒有名字,但他有標識,所以要想擷取視圖中的指定子視圖,我們可以通過子視圖的標識來擷取,方法如下:

    //擷取view下子視表徵圖識為200的視圖    UIView *subView = [view viewWithTag:200];
更改視圖的顯示層級
    //通過父視圖,將某個子視圖在最上面顯示    [view bringSubviewToFront:yView];    //通過父視圖, 將某個子視圖在最下顯示    [view sendSubviewToBack:view2];

本文簡書連結:http://www.jianshu.com/p/1f28240babd0

iOS UI基礎控制項之UIView 詳解

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.