iOS開發-UI (一)補充 UIWindow UIView UIlabel,-uiuiwindow
之前忘了把這些整理出來,現在補充一下,應該放在前面學習的
知識點:
1.UI的初步認識
2.UIWindow
3.UIView
4.UIlabel
========================
UI的初步認識
1.什麼是UI(*)
UI即User Interface(使用者介面)的簡稱。UI設計則是指對軟 件的人機互動、操作邏輯、介面美觀的整體設計。好的UI設 計不僅是讓軟體變得有個性有品味,還要讓軟體的操作變得 舒適、簡單、自由、充分體現軟體的定位和特點。
2.第一個UI工程
1)UI工程的程式入口在哪裡(*)
在AppDelegate這個類中(UIApplication的代理對象);
2)什麼是UIApplicationMain(*)
每一個程式在運行期必須有且僅有一個UIApplication(或則其 子類)的一個執行個體。建立UIApplication的單例執行個體。這樣可以 通過調用[UIApplication sharedApplication]來得到這個單例 執行個體的指標。
UIApplication的一個主要工作是處理使用者事件,它會建立一個 隊列,把所有使用者事件都放入隊列,逐個處理,
在處理的時候,它會發送當前事件到一個合適的處理事件的目 標控制項。此外,UIApplication執行個體還維護一個在本應用中開啟 的window列表(UIWindow執行個體),這樣它就 可以接觸應用 中的任何一個UIView對象。UIApplication執行個體會被賦予一個 代理對象,以處理應用程式的生命週期事件(比如程式啟動和 關閉)、系統事件(比如來電、記事項警告)等等
3)IOS程式表徵圖和程式名設定(***)
修改info.plist設定檔中的bundle name
圖片必須是png格式,並且像素尺寸必須要符合要求
========================
UIWindow
1.iPhone應用程式通常只有一個視窗,表示為一個UIWindow類的 執行個體。應用程式在啟動時建立這個視窗,並往視窗中加入一或多 個視圖並顯示出來。
2.UIWindow對象是所有UIView的根,管理和協調應用程式的顯 示。一般應用程式只有一個UIWindow對象,即使有多個 UIWindow對象,也只有一個UIWindow可以接受到使用者的觸屏 事件。
備忘:UIWindow繼承自UIView
========================
UIView使用
1.UIView初步介紹
ios中一切看得見摸得著的類都是直接或者間接的繼承自UIView
2.UIView作用
1)視圖是UIView類的執行個體,負責在螢幕上定義一個矩形地區。
視圖在展示使用者介面及響應使用者介面互動方面發揮關鍵作用。
每個視圖對象都要負責渲染視圖矩形地區中的內容,並響應該地區 中發生的操作事件。視圖是應用程式與使用者互動的重要機制。除了 顯示內容和處理事件之外,視圖還可以用於管理一或多個子視圖。
2)子視圖是指嵌入到另一視圖對象邊框內部的視圖對象,而被嵌入的 視圖則被稱為父視圖或超視圖。視圖的這種布局方式被稱為視圖層 次,一個視圖可以包含任意數量的子視圖,通過為子視圖添加子視 圖的方式,視圖可以實現任意深度的嵌套。子視圖總是被顯示在其 父視圖的上方。每個父視圖都負責管理其直接的子視圖,根據需要 調整它們的位置和尺寸,以及響應它們沒有處理的事件。
3.iPhone螢幕是用點來計算座標的
型號 x y
iPhone4 320 * 480
iPhone4S 320 * 480
iPhone5 320 * 568
iPhone5S 320 * 568
iPhone6 375 * 667
iPhone6 Plus 414 * 736
普通螢幕 1點=1像素
retina螢幕 1點 = 4像素
6 Plus 1點 = 9像素
4.iPhone的座標系
1) 原點在左上方
2) 往右為x的正方向,往下為y的正方向
5.UIView常見屬性和座標屬性
1)IOS中的座標系統
2)frame: 該view在父view座標系統中的位置和大小。 (參照點是,父親的座標系統)
3)bounds:該view在自身座標系中的位置和大小。 (參照點是,自己的座標系)
4)center:該view的中心點在父view座標系統中的位置。
(參照點是,父親的座標系統)
6.UIView的層次關係
1)添加子視圖:addSubView
[self.window addSubview:label];
2)從父視圖移除:removeFromSuperview
========================
UIlabel
1.UIFont類常用方法
1)建立一個UIFont對象
(UIFont *)fontWithName:(NSString *)name size:(CGFloat)size
label.font = [UIFont fontWithName:@"Zapfino" size:20];
2)遍曆系統字型庫
(NSArray *)familyNames
//擷取系統的字型庫
NSArray *fontArr = [UIFont familyNames];
3)設定加粗
(UIFont *)boldSystemFontOfSize:(CGFloat) size
label.font = [UIFont boldSystemFontOfSize:20];
2.UILabel如何改變字型顏色
1)字型顏色:setTextColor
2)文字陰影顏色:setShadowColor
3)設定文字陰影位移: setShadowOffset
//陰影相對於本身的label 往X的正方向位移20個單位,往Y方向位移20個單位
label.shadowOffset = CGSizeMake(20, 20);
//設定陰影顏色
label.shadowColor = [UIColor grayColor];
3.UILabel文字對齊:setTextAlignment
1)NSTextAlignmentLeft -> 靠左對齊
2) NSTextAlignmentCenter ->置中對齊
3)NSTextAlignmentRight ->靠右對齊
label.textAlignment = NSTextAlignmentCenter;
4.UILabel多行顯示:numberOfLines
//0代表無限換行,直到超出label本身的範圍
label.numberOfLines = 0;
5.自適應內容,根據內容大小設定UILabel的frame
//textSize為最後字串內容佔用的地區大小
CGSize textSize = [str boundingRectWithSize:CGSizeMake(200, 3000) options:NSStringDrawingUsesLineFragmentOrigin attributes:dic context:nil].size;
//建立一個UILabel ,UILabel的大小根據textSize進行變化
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 20, textSize.width, textSize.height)];