亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

有關View的幾個基礎知識點-IOS開發

發布時間:2020-07-12 07:17:55 來源:網絡 閱讀:897 作者:江山風雨 欄目:移動開發

開發環境如下:

有關View的幾個基礎知識點-IOS開發

首先要弄懂幾個基本的概念。

一)三個結構體:CGPoint、CGSize、CGRect

這三個結構體均在一個頭文件里:

#include <CoreGraphics/CGGeometry.h>

打開文件如下:

有關View的幾個基礎知識點-IOS開發

其中 CGRect 的偏移量是相對父窗口的。

二)三個方法:CGPointMake、CGSizeMake、CGRectMake

這三個函數還是在剛剛那個頭文件里面:

#include <CoreGraphics/CGGeometry.h>

打開文件如下:

有關View的幾個基礎知識點-IOS開發


備注:可見

#include <CoreGraphics/CGGeometry.h>

這個文件里有宏定義:

CG_EXTERN

CG_INLINE

追根溯源,可以發現在文件

#include <CoreGraphics/CGBase.h>

文件中有宏定義:

有關View的幾個基礎知識點-IOS開發

有關View的幾個基礎知識點-IOS開發

可見上述這三個函數是不是內聯函數,要看是哪種編譯器。通過如下輸出可判定是哪知編譯器:

有關View的幾個基礎知識點-IOS開發


三)幾個基本界面元素:window(窗口)、視圖(view)

要在屏幕上顯示內容首先要創建一個窗口(window)承載內容,要創建一個窗口,需要一個邊框(frame),含有邊框信息的底層 結構就CGRect。每個能夠在屏幕上顯示自己的對象都有一個邊框(frame),定義了他的顯示區域,不過許多高層的視圖類(UIView)會自動計算這一信息。其他的那些類則在視圖初始化時通過一個initWithFrame的初始化方法來設置。

再來認識一個類:UIScreen。UIScreen類代表了屏幕,通過這個類我們可以獲取一些想要的東東。

有關View的幾個基礎知識點-IOS開發


UIView

下面來認識一下UIView類。這個類繼承自UIResponder,看這個名字我們就知道它是負責顯示的畫布。如果說把window比作畫框的話,我們就是不斷地在畫框上移除、更換或者疊加畫布,或者在畫布上疊加其他畫布,大小當然由繪畫者來決定了。有了畫布,我們就可以在上面任意操作了。

這個類在

#include <CoreGraphics/UIView.h>

里面。

下面我們先學習一些基礎的東西。

首先進入其頭文件里面,查看其 frame 和 bounds 屬性。

有關View的幾個基礎知識點-IOS開發

這里我們要弄清楚frame和bounds這兩個屬性的區別:

-(CGRect)frame{

return CGRectMake(self.frame.origin.x, self.frame.origin.y, self.frame.size.width, self.frame.size.height);

}


-(CGRect)bounds{

return CGRectMake(0, 0, self.frame.size.width, self.frame.size.height);

}

可見:

frame: view在父view坐標系統中的位置和大小。(參照點是,父親的坐標系統)

bounds:view在自身坐標系統中的位置和大小。 (參照點是,自身坐標系統)


創建畫布的基本方式如下:

CGRect CGone = CGRectMake(0.0, 0.0, 320, 100); //畫個矩形,初始化位置與大小

UIView *v_one = [[UIView alloc] initWithFrame:CGone];//初始化view

我們可以把這塊畫布加到其他畫布上。

[self.window addSubview:v_one];//直接加到畫框上


UIWindow

UIWindow繼承自UIView,關于這一點可能有點邏輯障礙,畫框怎么繼承自畫布呢?不要過于去專牛角尖,畫框的形狀不就是跟畫布一樣嗎?拿一塊畫布然后用一些方法把它加強,是不是可以當一個畫框用呢?這也是為什么 一個view可以直接加到另一個view上去的原因了。一個應用程序只能有一個UIWindow。

看一下系統的初始化過程:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

{

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

// Override point for customization after application launch.

self.window.backgroundColor = [UIColor whiteColor];//給window設置一個背景色

[self.window makeKeyAndVisible];//讓window顯示出來

return YES;

}



實戰演練:

1)新建一個工程選擇 Empty Application 名字為FirstTest。
2)在application didFinishLaunchingWithOptions里面,你會發現系統已經建好一個畫框了,我們現在就用系統幫我們建好的畫框,你當然也可以自己建一個畫框,不過沒這個必要了。

有關View的幾個基礎知識點-IOS開發


輸出效果如下:

有關View的幾個基礎知識點-IOS開發


本文參考連接:http://blog.csdn.net/iukey/article/details/7083165


附件:http://down.51cto.com/data/2363690
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

屏东县| 桐庐县| 临高县| 宁远县| 酒泉市| 漯河市| 綦江县| 吉水县| 东海县| 封开县| 麟游县| 屏东县| 兴城市| 理塘县| 南乐县| 宽城| 滕州市| 康乐县| 新民市| 绩溪县| 崇仁县| 抚顺县| 育儿| 盘山县| 奉贤区| 顺平县| 观塘区| 遵义市| 宣城市| 岗巴县| 义乌市| 白水县| 湘阴县| 收藏| 阿城市| 华池县| 育儿| 分宜县| 陆良县| 台北县| 莫力|