首先創建一個iOS新工程,刪除工程自動創建的main.storyboard以及xib文件,而且在info.plist上刪除這兩個選項windows
而後在項目配置中將maninterface設置爲空,將launch screen file設置爲空,新建一個view,命名爲ViewController,由於此時已經有自動生成的類ViewController,因此不用新建類設計模式
創建新建xib文件和類的鏈接,將file own的class修改成ViewControll,修改完成以後才能進行下一步api
鏈接新建的xib文件的view屬性和到file own,是的view與代碼關聯數組
此時,新的xib就能夠生成一個界面對象了mvc
可是啓動時還須要指定使用哪個view,方法以下app
在AppDelegate.m文件的didFinishLaunchWithOptions方法中添加如下代碼ide
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; ViewController* view = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil]; self.window.rootViewController = view; self.window.backgroundColor = [UIColor whiteColor]; [self.window makeKeyAndVisible];
首先爲引用簡歷windows,而後簡歷viewController,將窗口的主控制器設置爲生成的view,並設置背景顏色,而後顯示界面函數
到這裏基本完成,可是這樣的作法生成的界面可能不匹配,此時還須要在項目配置中的launch screen file修改爲咱們創建的主窗口文件,而後啓動,就能夠擺脫storyboard了字體
UIButton iOS的按鈕控件,使用UIButton能夠實現按鍵點擊的功能,該控件直接繼承自UIControl類,因此擁有UIControl的方法和屬性,目前使用的屬性包括ui
touch up inside 事件,也就是鼠標的點擊事件
獲取當前按鈕上的文字 titleForState:UIControlStateNormal方法
設置按鍵不被按下的背景圖片 setBackGroundImage image forstate uicontrolstateNormal
設置按鍵被按下的背景圖片 setBackGroundImage image forstate uicontrolstatehighlights
UILabel iOS的文本展現區域
能夠直接使用text屬性獲取控件的文本和設置控件的文本,還能夠設置文本的格式
使用NSMutableAttributedString 來生成帶格式的字符串,字符串使用setAttrbutes設置屬性,lanbel有一個attributeText能夠接收格式化字符串
設置字體格式的時候使用字典,字典鍵是文本類型,值是字體大小
iOS使用mvc設計模式,XIB爲view視圖,viewcontroller爲視圖控制器,還有一個model是應用程序委託,也就是appDetegate類,該類包含有幾個方法,在應用程序的生命週期中起做用
didFinishLaunchingWithOptions 程序啓動子後的自定義設置
applicationWillResignActive 應用程序即將從活動狀態切換到不活動狀態的觸發代碼,在該方法中引用程序應該作本身的資源備份
applicationDidEnterBackGround 應用程序進入後臺執行
applicationWillEnterForeground 應用程序進入活動狀態,也就是從後臺恢復
applicationDidBecomeActive 應用程序處於非活動狀態的時候從新進入活動狀態
applicationWillTerminate 應用程序終止,程序即將中止的時候udiaoyong該方法
其中
didFinishLaunchingWithOptions在應用程序完成了全部的初始化工做並準備好與用戶交互的時候,調用這個方法
活動控件 靜態控件與被動控件
被動控件:大多數狀況下用戶不能對其進行任何操做,只是一個展現用界面,例如UIImage控件,固然,通過配置,也能對特定事件作出響應
還有一些控件能夠在被動狀態工做,可是其自己不會觸發方法,而是做爲數據的容器,如UITextField控件.
全部iOS控件都是UIControl的子類,由於多點觸控的引入,以及觸發按下和離開均可以觸發不一樣的方法
UIView的全部子類都有一個tag屬性,該屬性只是一個數值,能夠再interface builder中設置,也能夠在到嗎中設置,系統永遠不會修改他得值,能夠用於簡單的區分不一樣的控件
UIImageView控件,用於顯示圖片的控件,包含有如下的屬性
1.mode 決定內容在視圖內部的顯示方式,也就是圖像在視圖內部的對齊方式,通常使用scall fill 縮放鋪滿
2.tag 前面描述過,用於相同控件的區分
3.interaction 包含兩個選項,第一個user interaction enable 指明當前對象可否和用戶進行交互,也就是可否響應一些方法,multiple touch 控件是否支持多點觸控事件
4.alpha 定義控件上圖片的透明度,也就是圖像背後內容的可見度,0徹底透明 1徹底不透明
5,background 肯定視圖的背景顏色
6.drawing 包含有一系列繪製選項 opaque 告訴系統控件的背後並無圖片須要繪製,而且容許系統加速控件自己的繪製. hidden 隱藏某個對象 clear Graphics context 在繪製對象以前先使用一塊全黑的區域來覆蓋空間區域 clip subview 加入一個視圖view包含有子view ,該複選框決定了子view的繪製方式,選中以後,只有在父view以內的部分被繪製,以外的部分不會參與繪製,不選中,子view所有繪製,無論子視圖是否超過父視圖的邊界
7.autoresize subview 當前視圖發生變化的時候自動調整子視圖的大小
8,stretching 拉伸,該選項用於從新調整視圖大小的時候使用,將視圖的外邊緣保持不變,僅僅拉伸中間部分,而不是均勻拉伸視圖的所有內容
文本顯示UILabel控件擁有如下設置屬性
1.text :文本顯示類型 plaintext 純文本 attributed text屬性文本
2.字體顏色設置,文本對其設置,行數設置
3.
文本輸入控件UITextFeild,用於系統輸入文本使用
1.placeholder 佔位符 佔位符的文本是在文本框文本爲空的時候自動顯示的文本,能夠起到提示用戶輸入什麼內容的做用
2.border style 設定文本框的邊框顯示風格
3.clearbutton設置.設定什麼時候出現彈出按鈕,能夠選着編輯時出現,編輯完成出現,不出現,編輯以後一直可見,clear when editing begin 指定用戶觸摸時清除文本,即一旦開始編輯就清除以前的文本輸入
4.adjust to fit :設定顯示文本是否隨着文本尺寸的長度增長而減小,選中自後,再編輯過程當中所有文本都是可見的,可是最小不會小於最小字號
5.接下來就是定義輸入時鍵盤的行爲 capitalization 使用word保證用戶的每一個輸入單詞的首字母都自動轉化成大寫,return key 用戶結束輸入的時候鍵盤顯示的字符,autoenable returnkey 設定當文本爲空的時候,return key被禁用
6,secure 只是該輸入區域是否爲密碼輸入區域
完成輸入關閉鍵盤
當一個輸入區域好比文本框,在用戶按下return 按鍵的時候,說明結束輸入,此時會觸發一個事件,名稱爲 Did End On Exit,爲該事件設定響應方法,就能實現輸入完成自動關閉鍵盤,例如
- (IBAction)textFieldOnExit:(id)sender { [sender resignFirstResponder];//控件自身放棄第一響應者的控制權並返回給用戶以前操做的控件 }
可是使用數字鍵盤來輸入的時候,沒有return 按鍵,此時應該設定用戶按屏幕中沒有控件的任何空白區域,都能關閉鍵盤,此時應當設定,觸摸背景關閉鍵盤,想要作到這一點,首先
先要將界面的基類修改成UIControl,(以前是UIView),修改後界面就擁有了響應事件的能力
爲VIEW增長touch down事件,事件的響應函數以下
[self.nameField resignFirstResponder]; [self.numberField resignFirstResponder];//將view中的全部佔用鍵盤的地方的響應權全都釋放掉
iOS滑動控件UISlider 用於顯示滑動,主要事件
valueChanged 當滑塊被移動的時候觸發該事件,經過value屬性就能獲得當前的值,值的最大和最小界限都能控制
當使用不一樣屏幕適配的時候,爲全部的空間添加頂部約束,可以有效地適配不一樣設備的界面
分段控件 UISegmentedControl 主要用於在不一樣的界面顯示不一樣的內容,相似於選項卡的一種控件,能夠選擇分段數量
選擇每個分段的標題或者每個分段的圖片,分段控件的主要響應動做也是valueChanged,以下
- (IBAction)toggleControls:(UISegmentedControl *)sender { if(sender.selectedSegmentIndex == 0)//經過分段控件的selectedSegmentIndex來決定當前的現實狀況,從0開始的顯示index { self.leftSwitch.hidden = NO; self.rightSwitch.hidden = NO; self.dosomethingButton.hidden = YES; } else { self.leftSwitch.hidden = YES; self.rightSwitch.hidden = YES; self.dosomethingButton.hidden = NO; } }
開關控件UISwitch,用於顯示一個非0即1的狀態選擇按鈕
主要響應方法 valueChanged,以下
-(IBAction)switchChanged:(UISwitch *)sender { BOOL setting = sender.isOn;//獲取當前按鍵的狀態,是一個布爾值 [self.leftSwitch setOn:setting animated:YES];//根據狀態設定開關狀態 [self.rightSwitch setOn:setting animated:YES]; }
iOS操做表單和警告視圖
操做表單的做用是要求用戶在兩個以上的選項之間作出選擇,操做表單從底
部出現,顯示一系列按鈕供用戶選擇,用戶必須點擊其中一個按鈕才能繼續使用,經常使用於確承認能有危險或者不可逆的操做,
使用操做表單必須使用委託,用戶必須實現UIActionSheetDelegate協議,以下
@interface ViewController : UIViewController<UIActionSheetDelegate>
生成並顯示錶單的操做爲
- (IBAction)buttonPressed:(id)sender { UIActionSheet* actionSheet = [[UIActionSheet alloc] initWithTitle:@"are you Sure" delegate:self cancelButtonTitle:@"no way" destructiveButtonTitle:@"yes i am sure" otherButtonTitles: @"foo",@"bar",nil]; [actionSheet showInView:self.view]; }
initwithtitle 使用標題初始化,第一個參數爲操做表單要顯示的標題,字符串對象,第二個delegate 表單的委託對象,當按下表單的某個按鈕的時候,對應的委託對象收到數據,這裏指定爲self,cancelButtonTitle 取消按鈕的標題 destructiveButtonTitle 按鈕的標題,至關於確認按鈕的標題,otherButtonTitle:任意數量的其餘按鈕,參數是一個數組,必須以nil結束
而後調用action showInView:selfview 爲操做表單指定一個父類並顯示出來,這裏指定本身的view
此時,一個操做表單就顯示了.
當用於決定了操做表單的選擇的時候,也就是按下了一個肯定的按鈕的時候,操做表單會向生成時指定的委託對象發送一個消息,消息名爲ActionSheet,咱們繼承了
UIActionSheetDelegate協議,就必須實現ActionSheet方法,以下
-(void)actionSheet:(UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex { NSString* msg = nil; if(self.nameField.text.length > 0) { msg = [NSString stringWithFormat:@"you can breathe easy,%@,everything went ok.",self.nameField.text]; } else msg = @"you can breathe easy,everything went ok."; UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"something was done" message:msg delegate:self cancelButtonTitle:@"prew" otherButtonTitles:nil]; [alert show]; }
在這個方法中繼續以前操做表單的處理,應爲actionsheet對象也隨之發送過來了,index也有了,因此能獲得用戶按下的位置
前面的代碼中還用到了警告視圖,用於提示用戶發生了一些不尋常的事情,警告視圖能夠只顯示一個按鈕也能夠顯示多個按鈕
initwithtitle 第一個是參數爲警告視圖的標題 message 警告視圖要顯示的信息 處理警告視圖的委託對象 cancelButtonTitle 取消按鈕的標題 otherButtonTitles 其餘按鈕的標題,數組,以nil結束
警告視圖並無和特定的視圖綁定在一塊兒,因此不須要指定父視圖
viewdidload方法在view類中用於處理試圖加載完成以後的對視圖的額外設置,例如設定圖片背景色等等