UIView 是一切 iOS 中的畫面基礎,你在 iPhone/iPad 看的到的每一個元件,都是以 UIView 為基礎開始的。

UIView 並不一定是個佔有整個畫面,所有 UIView 或其子孫後代 Class ,如 UIButton ,UINavgation,UILabel,UIWebView 都是一層一層堆在畫面上。

UIView 也繼承了 UIResponder 這個類別,所以它也可以處理些多點觸控的事件與處理,像是放大/縮小手勢,轉向手勢等。

所以 UIView 的所有設定,如大小, 背景色,也都可以用在其他繼承 UIView 類別的子孫類別。

一個 UIView 至少會有位置與大小,也就是 farme,所以通常用 initWithFarme 方法來產生UIView。farme 是一個 CGRect (請參閱 CGRect 來查看相關內容)。實際產生一個 UIView 可以用下面的程式來產生:

 
  UIView *theUIView=[[UIView alloc] initWithFarme:
         CGRectMake(10,10,300,100)]]; 




先來看一下一個簡單的案例,首先開啟一個 SingleView App 後,在第一個 ViewController 內的 View,就是我們看到的畫面,如果我們要在其中加一個子 View 就要建立一個 UIView 然後利用 addSubView 這個方法加進去。為了看到這個 subView 我們還要設定一下它的大小位置和背景顏色,也就是 UIView 的 farme 和 backgroundColor。 background 則是一個 UIColor,關於這兩個的設定,可以參閱 UIColor

為了達成這個目的,我們可以寫下這一段在主要的 ViewController.m 中的 loadView method 中

    UIView *theSubView=[[UIView alloc]
       initWithFrame:CGRectMake(10, 10, 300, 100)];

    theSubView.backgroundColor=[UIColorredColor];

    [self.view addSubview:theSubView];
 

 我們執行這個程式就會出現這樣的畫面:

螢幕快照 2012-10-20 下午8.10.47  

紅色的部份就是我們制定的 subView 了。


由於每一個 View 都是一個容器,我們可以在subView中,再掛一個 View 而它的 origin 是由 它的上層 superView 所產生的。如下面的程式:
 

 

    UIView *theSubView=[[UIView alloc] initWithFrame:CGRectMake(10, 10, 300, 100)];

    theSubView.backgroundColor=[UIColorredColor];

 

    UIView *theSubSubView=[[UIView alloc] initWithFrame:CGRectMake(20, 10, 100, 50)];

    theSubSubView.backgroundColor=[UIColoryellowColor];

 

    [theSubView addSubview:theSubSubView];

    [self.view addSubview:theSubView];


螢幕快照 2012-10-20 下午8.59.37  


要注意的是,其中 theSubSubView 的 origin 是 10,20,但它是由紅色的 theSubView 算起,而不是由最上層所算起的。


, , , , , , , , ,
創作者介紹

X Code Objective-C Swift 學習記錄 for iOS & macOS (OS X)

shenfive 發表在 痞客邦 PIXNET 留言(0) 人氣()