做用:顯示文字android
屬性:數組
text屬性:是label的文字框架
alignment屬性:對齊方式ide
lines屬性:若是爲0,不限制行數,可是Label須要有足夠大的空間顯示內容函數
Action:無性能
做用:在一個區域內,顯示圖像。學習
注意:UIImage是一個二進制的圖像數據,而UIImageView是用來顯示圖像數據的區域動畫
屬性:spa
image屬性:用於設置在圖像視圖中顯示的圖片代理
要從bundle加載圖像,可使用[UIImage imageNamed:]方法。
UIImageView自己能夠作序列幀動畫,要使用序列幀動畫,咱們須要指定三個屬性:
1) animationsImages:序列幀圖像數組
2) animationDuration:一組序列幀圖片播放完成須要的時間
3) animationRepeatCount:序列幀動畫重複的次數,默認爲0,循環播放
設置完UIImageView的動畫屬性以後,須要使用startAnimation方法啓動動畫,若是要中止動畫,可使用stopAnimation方法。
另外,可使用isAnimating屬性,判斷當前是否正在播放動畫
Action:無
做用:用戶交互的主要控件,有六種類型,其中自定義類型使用最爲廣泛
屬性:
title屬性:是按鈕的文字
titleColor屬性:是按鈕的顏色
image屬性:是按鈕顯示的圖像
提示:若是同時指定了image和title屬性,當按鈕空間不夠時,image優先顯示;另外,image屬性在按鈕中不會變形
backgroundImage屬性:是按鈕的背景圖片,注意,按鈕的背景圖片會根據按鈕的實際大小拉伸,在使用背景圖片時,尤爲須要注意按鈕的大小
backgroundColor屬性:按鈕的背景顏色屬性,僅在自定義類型的按鈕有效
使用技巧:一般在指定同一類型的按鈕操做時,咱們習慣用tag區分按鈕,而後統一調用同一個方法
注意:設置按鈕屬性的同時,須要指定屬性應用的狀態,一般使用Normal狀態,Highlight是按鈕長按下的狀態
Action:TouchUpInside
做用:供用戶輸入或編輯文本
屬性:
text屬性:得到或設置文本框中的文字
使用文本框控件時須要注意幾項事情:
1) 在輸入不一樣類型的文本時,須要注意鍵盤的類型,譬如輸入QQ號要使用數字鍵盤。輸入身份證號,須要自定義數字鍵盤或者默認打開數字的全鍵盤
2) 使用自定義數字鍵盤時,若是在越獄的機器上,可能會出現格式顯示問題
3) 若是界面上有多個文本框供用戶輸入時,要注意回車鍵的設置,實現文本框由上至下的切換,切換到最後一個文本框,再按回車鍵時,調用對應的確認按鈕的方法
4) 須要注意關閉鍵盤,關閉鍵盤有兩種方法:
a) [self.view endEditing:YES];
b) [textField resignFirstResponder];
撤銷自身第一響應者的身份
要獲取鍵盤輸入的焦點,能夠設置textField的becomeFirstResponder屬性,讓文本框成爲第一響應者便可。
5) 要監聽文本框的回車事件,須要設置文本框的delegate,同時讓視圖控制器聽從<UITextFieldDelegate>協議
以上四個控件主要應用在應用程序中。
做用:設置某一個屬性開或者關的狀態
屬性:
state屬性:on/off
使用isOn能夠判斷開關當前是否打開
Action: valueChanged
做用:容許用戶使用手指拖動滑塊,產生數值變化的控件
屬性:
minimumValue:滑塊的最小數值
maximumValue:滑塊的最大數值
value:滑塊的當前數值
須要注意的是:滑塊沒有步長,滑塊數值一般是連續變化的,這樣能夠保證滑塊動畫的連續性,所以,咱們在使用滑塊時,須要格外留意是否有重複刷新的狀況,例如照片查看器示例程序
Action: valueChanged
做用:用戶點擊「+」數值增長,點擊「-」數值減小
屬性:
minimumValue:滑塊的最小數值
maximumValue:滑塊的最大數值
value:滑塊的當前數值
stepValue:滑塊數值變化的步長
wraps:是否環繞,設置了環繞屬性以後,當數值到達最大值時會回覆到最小值,產生環繞效果。若是沒有設置環繞屬性,當到達最大值時,「+」會變灰禁止用戶點擊,當到達最小值時,「-」會變灰禁止用戶點擊
Action: valueChanged
做用:用戶同一時間只能選擇一個選項,與開關不一樣,它能夠設置多個選項供用戶選擇
屬性:
selectedSegmentIndex屬性:用戶當前選中的選項卡索引,第一個選項卡索引對應的數值是0
Action: valueChanged
以上四個控件主要應用在設置頁面。
做用:
1) 是一個容器,能夠容納任何的控件或者視圖
2) 全部的控件,最終均繼承自UIView
屬性:
1) 繼承類屬性:
superView:每個UIView最多隻能有一個父視圖,注意:UIViewController的根視圖沒有父視圖。
subViews:當前視圖所包含的子視圖/控件
2) 位置大小類屬性
frame:設置視圖的邊框
bounds:設置視圖的邊界,用於指定視圖的大小,經常使用於視圖的子控件設置位置,由於bounds屬性的原點,永遠是(0,0)
center:設置視圖的中心點位置,一般用於指定視圖的位置,在視圖動畫中比較經常使用
注意:
frame和center能夠指定UIView的位置
frame和bounds能夠指定UIView的大小
3) 形變屬性
transform:能夠指定視圖的平移、旋轉和縮放屬性
UIView封裝的簡單動畫效果
[UIView beginAnimations:nil context:nil];
// 設置動畫持續時間
[UIView setAnimationDuration:.3];
// 須要動畫的代碼段
[UIView commitAnimations];
UIView封裝的塊動畫
對比beginAnimations動畫的方式,塊動畫具備如下幾點優點:
凡是帶有Mutable字樣的類型,都是可變的,若是存在相對應的沒有Mutable字樣的類型,都是不可變的,一旦初始化以後,就不能夠再修改。
1.1 字符串轉數字 integerValue
1.2 字符串經常使用方法:[NSString stringWithFormat:@」格式字符串」, 參數…]
1.3 若是要表示:0001之類的數字格式可使用」%04d」之類的格式字符串
2.1 是數字的NS對象的表達形式,若是要把數字添加到數組或者字典中,必需要進行轉換,同時要使用數組中的數字,還須要轉換成對應的數字。
2.2 要轉換數字可使用OC提供的包裝方法:@(int)
2.3 要把NSNumber轉換成字符串,須要使用stringValue方法
3.1 是日期的數據類型
3.2 經常使用類方法[NSDate date]取出當前的系統時間
3.3 timeIntervalSinceDate方法能夠計算兩個時間的差值,以秒爲單位
3.4 特別須要注意,不要把NSDate和NSData搞混,這對於初學者,是常常犯的錯誤。
4.1 NSArray是不可變的,NSMutableArray是可變的,一般在使用時,能夠用一個自定義方法,初始化一個NSMutableArray,而在方法以外,統一使用NSArray
4.2 在NSArray中,能夠插入任何類型的對象,使用方法是:addObject(id)
4.3 要取出NSArray中的對象,可使用整數下標獲取,例如:array[i]
4.4 須要注意的是:若是要將int、float、double、NSInteger、CGFloat、CGPoint、CGRect、CGSize這些類型的數據插入數組以前,都須要進行類型轉換
4.5 若是從Bundle中讀取數組,可使用arrayWithContentOfFile:方法
5.1 字典和NSArray很是相似,不過字典是使用字符串鍵值進行維護的,它的可讀性更強
5.2 在數據字典中,字符串的鍵值不可以重複
5.3 要向數據字典中添加對象,須要使用setValue:forKey:方法
5.4 要從數據字典中獲取對象,須要使用dict[@」keyName」];
5.5 若是要從Bundle中讀取字典,可使用dictionaryWithContentsOfFile:方法
負責數據的保存以及相關的處理方法,Model不知道它會被誰調用,也不知道何時會被調用
負責界面上元素的顯示,一般在不少iOS應用程序中,視圖只是StoryBoard或者xib文件,通常不會在視圖中寫太多的代碼
負責界面上數據的顯示,以及用戶與界面發生交互以後,通知數據模型,作相應的處理。控制器是視圖與數據模型之間的紐帶和橋樑。一般在大多數應用程序中,視圖控制器中的代碼是最多的。
在iOS開發中,每個Controller都有切僅有一個跟視圖,若是使用Storyboard創建的應用程序,Xcode會自動設置一個view做爲視圖控制器的跟視圖,也是第一個顯示在用戶面前的視圖。
代理協議機制在iOS開發中,是很是經常使用的一種消息傳遞機制,主要用於子視圖向父視圖傳遞數據,代理協議是單向消息傳遞。
要使用代理協議,須要如下幾個步驟:
1) 在子視圖控制器中定義協議,而且定義若干協議方法,注意:只有方法,而沒有方法的具體實現。協議的名稱一般是子視圖控制器的類名+Delegate
2) 在子視圖控制器中定義代理屬性,代理的屬性是weak
3) 子視圖控制器中,在須要時直接經過_delegate調用協議方法,就能夠執行父視圖控制器中的相應方法的實現
1) 聽從子視圖控制器頭文件中定義的協議
2) 在推出子視圖控制器前,設置本身是子視圖控制器的代理,一般在prepareSegue方法中實現
3) 實現子視圖控制器中的協議方法,等待子視圖控制器的調用
使用實例代碼以下:
// 第一個參數:多長時間會觸發一次,以秒爲單位
// 第二個參數:若是看到函數的參數有target,通常狀況下,都用self
// 第三個參數:SEL,須要調用其餘的方法,就是每次時鐘被觸發的時候,去執行的方法
// 最多能夠帶一個參數,就是時鐘自己
// 第四個參數,暫時不用考慮,設置成nil
// 第五個參數:是否重複,一般會設置YES
_gameTimer = [NSTimer scheduledTimerWithTimeInterval:1.0f target:self selector:@selector(updateTimer:) userInfo:nil repeats:YES];
在時鐘觸發方法中,可使用sender.fireDate獲取到時鐘被觸發的時間
注意:使用NSTimer的時候,千萬不要忘記調用invalidate方法關閉時鐘。
NSTimer可能不會是及時相應觸發時間的,它的執行優先級相對較低,所以,不要使用NSTimer去作實時響應需求較高的週期性操做。