iOS開發-UI 從入門到精通(一)


一、UI概述

  (1)UI(User Interface)用戶界面,用戶能看到的各種各樣的頁面元素;

  (2)iOS App = 各種各樣的UI控件+業務邏輯和算法;

  (3)想要開發出一款精美的應用程序,需要熟練掌握各種各樣UI控件的用法。

二、UIWindow

  1、什么是window?

  (1)widow是窗口,每個app都需要借助window將內容展現給用戶看;

  (2)在iOS中,使用UIWindow類來表示窗口,通常一個應用程序只創建一個UIWindow對象;

  (3)window的主要作用是呈現內容給用戶,我們不會對window做太多操作。

  2、如何創建window?

  (1)在創建window的時候,需要指定window的大小。

  (2)通常window的大小(frame)與屏幕(UIScreen)大小一致。

  示例代碼:self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

  3、補充一點:創建項目流程

  (1)command + shift + N—>iOS下的Application—>Empty Application。點擊Next。

  (2)輸⼊Product Name,點擊Next。

  (3)選擇項目保存路徑,點擊Create。

  4、window如何呈現內容?下面我們將引入UIView;

三、UIView

  1、什么是View?

  (1)view(視圖):代表屏幕上的一個矩形區域。iOS中用UIView來表示視圖

  (2)通俗的說各種UI控件都屬於view。

  (3)不同的控件代表不同種類的view。 iOS中所有能看到的內容都是view或其子類。

  2、如何創建view?

  (1)創建視圖的步驟如下:

    ①開辟空間並初始化視圖(初始化時,給出視圖位置和大小)

    ②對視圖做一些設置(比如:背景顏色)

    ③將視圖添加到window上進行顯示

    ④釋放視圖對象

  (2)視圖創建代碼:

    UIView *blueView = [[UIView alloc]initWithFrame:CGRectMake(100, 100, 120, 100)];

    blueView.backgroundColor = [UIColor blueColor];

    [self.window addSubview:blueView];

    [blueView release];

  3、什么是Frame?

  (1)frame是view的重要屬性,是我們做視圖布局的關鍵,它決定了視圖的大小和位置。

  4、如何完全掌控view的大小和位置?下面我們將引入iOS坐標系;

  5、iOS坐標系:

  (1)iOS提供了用於布局的平面坐標系。左上角為坐標系的原點。

  (2)水平向右:為x的正方向。

  (3)垂直向下:為y的正方向。

  (4)坐標系不是以像素作為划分依據,而是以“點”作為依據。

  6、Frame包含什么?

  (1)frame是一個結構體,包含2部分內容:origin和size。

  (2)origin也是一個結構體,包含2部分內容:x和y。

  (3)size同樣是一個結構體,包含2部分內容:width和height。

  (4)frame的origin和size是相對於父視圖來說的。

  (5)CGRectMake()函數可以幫我們快速構造一個CGRect變量。

  7、什么是Center?

  (1)center(中心點)也是view重要的屬性。

  (2)center是個結構體,包含2個部分:x和y。

  (3)center與frame有着密切的聯系。

  (4)center.x = frame.origin.x + frame.size.width/2;

           center.y = frame.origin.y + frame.size.height/2;

  8、什么是bounds?

  (1)bounds(邊界)也是view的重要屬性,用於定義自己的邊界。

  (2)它同frame一樣是一個CGRect結構體變量。

  (3)當一個view設置bounds時,會把自己當成一個容器,定義自己的邊界大小以及左上角的初始坐標。

  (4)當子視圖添加到此視圖時,會根據bounds指定的原點(0,0)計算frame,而非左上角。

  9、bounds和frame和center有着微妙的聯系(詳見下圖):

  

  

  

  10、添加視圖

  (1)UIView的addSubview:方法可以添加子視圖,對於同一個視圖的所有子視圖來講,后添加的子視圖會把已加的子視圖蓋在下面。

  (2)UIView提供了其他添加視圖的方法(詳見下表);

    

  11、管理視圖層次

  (1)UIView除了提供添加視圖的方法,還提供了管理視圖層次的方法(詳見下表)。

  

  12、視圖重要屬性

  (1)UIView作為其他UI控件的BaseClass,提供了很多屬性(詳見下表):

  

四、UILabel

  1、UILabel是什么?

  (1)UILabel(標簽):是顯示文本的控件。在App中UILabel是出現頻率最高的控件。

  (2)UILabel是UIView子類,作為子類一般是為了擴充父類的功能,UILabel擴展了文字顯示的功能,UILabel是能顯示文字的視圖。

  2、如何使用UILabel?

  (1)創建UILabel與創建UIView的步驟很相似。

    ①開辟空間並初始化(如果本類有初始化方法,使用自己的;否則使用父類的)。

    ②設置文本控制相關的屬性。

    ③添加到父視圖上,用以顯示。

    ④釋放。

  (2)視圖創建代碼:

    UILabel *userNameLabel = [[UILabel alloc]initWithFrame:CGRectMake(30, 100, 100, 30)];

    userNameLabel.text = @"用戶名";

    [containerView addSubview:userNameLabel];

    [userNameLabel release];

  3、如何控制文本顯示?

  (1)UILabel的主要作用是顯示一段文本,因此提供了很多與顯示文本相關的API(詳見下表)

   

  4、小節

  (1)UIView是所有可視化控件的基類。

  (2)UILabel是具有特定外觀特定功能的視圖。

  (3)UILabel側重於文本的呈現。

五、總結

  (1)App靠window來呈現內容,一個程序一般只創建一個window。

  (2)App中能看到的元素,都是UIView及其子類。

  (3)UIView作為所有可視化控件的BaseClass,提供了許多屬性和方法。 顯示效果控制(frame、alpha等)、視圖添加和移除(addSubview: 等)、視圖層次調整(bringSubviewToFront:等)等。

  (4)UILabel屬於具體的視圖,有自己的側重點

六、下一篇將持續更新配套知識點練習;

 Email:dingding3w@126.com


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM