開發(fā)環(huán)境如下:
創(chuàng)新互聯(lián)建站是一家專注于成都做網(wǎng)站、網(wǎng)站設(shè)計與策劃設(shè)計,龍文網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)建站做網(wǎng)站,專注于網(wǎng)站建設(shè)十年,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:龍文等地區(qū)。龍文做網(wǎng)站價格咨詢:13518219792
首先要弄懂幾個基本的概念。
一)三個結(jié)構(gòu)體:CGPoint、CGSize、CGRect
這三個結(jié)構(gòu)體均在一個頭文件里:
#include
打開文件如下:
其中 CGRect 的偏移量是相對父窗口的。
二)三個方法:CGPointMake、CGSizeMake、CGRectMake
這三個函數(shù)還是在剛剛那個頭文件里面:
#include
打開文件如下:
備注:可見
#include
這個文件里有宏定義:
CG_EXTERN
和
CG_INLINE
追根溯源,可以發(fā)現(xiàn)在文件
#include
文件中有宏定義:
可見上述這三個函數(shù)是不是內(nèi)聯(lián)函數(shù),要看是哪種編譯器。通過如下輸出可判定是哪知編譯器:
三)幾個基本界面元素:window(窗口)、視圖(view)
要在屏幕上顯示內(nèi)容首先要創(chuàng)建一個窗口(window)承載內(nèi)容,要創(chuàng)建一個窗口,需要一個邊框(frame),含有邊框信息的底層 結(jié)構(gòu)就CGRect。每個能夠在屏幕上顯示自己的對象都有一個邊框(frame),定義了他的顯示區(qū)域,不過許多高層的視圖類(UIView)會自動計算這一信息。其他的那些類則在視圖初始化時通過一個initWithFrame的初始化方法來設(shè)置。
再來認識一個類:UIScreen。UIScreen類代表了屏幕,通過這個類我們可以獲取一些想要的東東。
UIView
下面來認識一下UIView類。這個類繼承自UIResponder,看這個名字我們就知道它是負責(zé)顯示的畫布。如果說把window比作畫框的話,我們就是不斷地在畫框上移除、更換或者疊加畫布,或者在畫布上疊加其他畫布,大小當(dāng)然由繪畫者來決定了。有了畫布,我們就可以在上面任意操作了。
這個類在
#include
里面。
下面我們先學(xué)習(xí)一些基礎(chǔ)的東西。
首先進入其頭文件里面,查看其 frame 和 bounds 屬性。
這里我們要弄清楚frame和bounds這兩個屬性的區(qū)別:
-(CGRect)frame{
returnCGRectMake(self.frame.origin.x, self.frame.origin.y, self.frame.size.width, self.frame.size.height);
}
-(CGRect)bounds{
returnCGRectMake(0, 0, self.frame.size.width, self.frame.size.height);
}
可見:
frame:該view在父view坐標(biāo)系統(tǒng)中的位置和大小。(參照點是,父親的坐標(biāo)系統(tǒng))
bounds:該view在自身坐標(biāo)系統(tǒng)中的位置和大小。 (參照點是,自身坐標(biāo)系統(tǒng))
創(chuàng)建畫布的基本方式如下:
CGRect CGone = CGRectMake(0.0, 0.0, 320, 100); //畫個矩形,初始化位置與大小
UIView *v_one = [[UIViewalloc] initWithFrame:CGone];//初始化view
我們可以把這塊畫布加到其他畫布上。
[self.windowaddSubview:v_one];//直接加到畫框上
UIWindow
UIWindow繼承自UIView,關(guān)于這一點可能有點邏輯障礙,畫框怎么繼承自畫布呢?不要過于去專牛角尖,畫框的形狀不就是跟畫布一樣嗎?拿一塊畫布然后用一些方法把它加強,是不是可以當(dāng)一個畫框用呢?這也是為什么 一個view可以直接加到另一個view上去的原因了。一個應(yīng)用程序只能有一個UIWindow。
看一下系統(tǒng)的初始化過程:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindowalloc]initWithFrame:[[UIScreenmainScreen]bounds]];
// Override point for customization after application launch.
self.window.backgroundColor = [UIColor whiteColor];//給window設(shè)置一個背景色
[self.windowmakeKeyAndVisible];//讓window顯示出來
return YES;
}
實戰(zhàn)演練:
1)新建一個工程選擇 Empty Application 名字為FirstTest。
2)在application didFinishLaunchingWithOptions里面,你會發(fā)現(xiàn)系統(tǒng)已經(jīng)建好一個畫框了,我們現(xiàn)在就用系統(tǒng)幫我們建好的畫框,你當(dāng)然也可以自己建一個畫框,不過沒這個必要了。
輸出效果如下:
本文參考連接:http://blog.csdn.net/iukey/article/details/7083165