一、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