91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

有關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

西峡县| 梅河口市| 卢氏县| 威宁| 紫云| 湘潭县| 洪泽县| 万全县| 彩票| 揭东县| 孙吴县| 顺平县| 湘乡市| 民丰县| 太谷县| 富阳市| 巴南区| 乐都县| 苏州市| 宁化县| 莱州市| 桑植县| 仲巴县| 得荣县| 西充县| 白银市| 丰镇市| 吉林市| 深水埗区| 秦安县| 夏邑县| 延吉市| 汤原县| 财经| 华宁县| 平湖市| 呼伦贝尔市| 博乐市| 平江县| 于田县| 准格尔旗|