国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

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

2019-11-14 18:44:11
字體:
來源:轉載
供稿:網友

一、UITextField

1、UITextField是什么?

(1)UITextField(輸入框):是控制文本輸入和顯示的控件。在App中UITextField出現頻率也比較高;

(2)iOS系統借助虛擬鍵盤實現輸入,當點擊輸入框,系統會自動調出鍵盤,方便 你進一步操作。在你不需要輸入的時候,可以使用收回鍵盤的方法,收回彈出的鍵盤;

(3)UITextField和UILabel相比,UILabel主要用于文字顯示,不能編輯, UITextField允許用戶編輯文字(輸入)。

2、如何使用UITextField?

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

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

  ②設置文本顯示、輸入相關的屬性;

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

  ④釋放。

3、UITextField使用示例:

  UITextField *userNameTextField = [[UITextField alloc]initWithFrame:CGRectMake(100, 100, 190, 30)];

  userNameTextField.borderStyle =UITextBorderStyleRoundedRect;

  userNameTextField.placeholder = @"手機號/郵箱";

  [containerView addSubview:userNameTextField];

  [userNameTextField release];

4、UITextField更多:

(1)UITextField核心功能主要包含3個方面:

  ①文本顯示 ②輸入控制 ③外觀配置

5、文本顯示:

(1)UITextField提供了許多API方便我們控制文本的顯示。 包括字體顏色、對齊方式、占位符等等(詳見下表)

  

6、輸入控制:

(1)UITextField類提供了許多控制輸入的API。 包括密碼模式、鍵盤樣式、自定義鍵盤等(詳見下表)

  

7、外觀控制:

  UITextField同樣提供了外觀控制的API。 包括邊框樣式、清除按鈕、輔助視圖等;

  

二、UIButton

1、UIButton是什么?

(1)UIButton(按鈕):是響應用戶點擊的控件。在App中UIButton是出現頻率很高的控件;

(2)UIButton與UILabel、UITextField側重點不同,側重于處理點按。當然UIButton類也提供了一些方法控制按鈕外觀。

2、如何使用UIButton?

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

  ①創建button對象(如果本類有初始化方法,使用自己的;否則使用父類的);

  ②設置按鈕顯示相關的屬性;

  ③為按鈕添加點擊事件;

  ④添加按鈕到父視圖上,用以顯示;

  ⑤按鈕無需釋放(因為使用的是類方法創建的button)。

3、UIButton使用示例:

  UIButton *loginButton = [UIButton  buttonWithType:UIButtonTypeSystem];

  loginButton.frame = CGRectMake(30, 200, 60, 30);

  [loginButton setTitle:@"登錄" forState:UIControlStateNormal];

  [loginButton addTarget:self action:@selector(login:) forControlEvents:UIControlEventTouchUpInside];

  [containerView addSubview:loginButton];

4、UIButton添加事件:

(1)UIButton從父類UIControl那繼承了控制相關的方法,比如添加事件、移除事件等。

  注:UIButton : UIControl : UIView(詳見下表)

  

5、外觀控制:

(1)UIButton提供了外觀控制的API。 包括標題、背景圖?片、前景圖?片等(詳見下表)

  

  

6、小節:

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

(2)UILabel、UITextField、UIButton是具有特定外觀特定功能的視圖;

(3)UILabel側重于文本的呈現;

(4)UITextField側重于輸入;

(5)UIButton側重于點擊事件處理。

三、delegate

1、點return回收鍵盤:

(1)點擊鍵盤return按鈕實現鍵盤回收的步驟:

  ①將AppDelete作為UITextField的delegate;

  ②AppDelete.h文件接受UITextFieldDelegate協議;

  ③AppDelete.m文件實現textFieldShouldReturn:方法)。

2、鍵盤回收代碼:

AppDelegate.m

1 - (BOOL)textFieldShouldReturn:(UITextField *)textField2 {3     [textField resignFirstResponder];4 5     return YES;6 }

3、小節:

(1)UITextField不應該在類內部(.m文件)實現textFieldShouldReturn:, 因為有時候,我們點return的時候,并不總是想回收鍵盤,例如:有兩個輸入框,第一個輸入框輸入完成之后,用戶點return按鈕,將光標移動到第二個輸入框(即:第二個輸入框稱為第一響應者);

(2)對于一個V來說,自己只負責觸發事件,事件由外界實現,即 delegate。

四、iOS程序啟動流程

1、mian函數是程序入口:

(1)任何一個程序,無論是基于Mac OS還是iOS,程序都是從main.m文件的main函數開始執行的。

2、UIapplicationMain:

(1)UIApplicationMain在程序入口函數main函數中調用,主要實現了3個功能:

  ①創建應用程序(UIApplication)實例;

  ②創建應用程序代理實例;

  ③建立事件循環(runloop:死循環,不斷檢測程序運行狀態,是否被觸摸、晃動等)。

3、UIApplicationMain剖析:

int UIApplicationMain (   int argc;   char *argv[];   NSString *PRincipalClassName;   NSString *delegateClassName);

(1)principalClassName:應用程序對象的類名(UIApplication或其子類);

(2)delegateClassName:應用程序delegate的類名。(任何接受了 UIApplicationDelegate的類)! UIApplicationMain根據上述兩個類名創建應用程序實例、應用程序代理實例。然后建立事件循環(runloop),檢測程序的各種事件(程序開始啟動,接收到觸 摸等等)。

4、應用程序代理:

(1)應用程序代理,主要檢測應用程序的狀態并做出相應的處理;

(2) 應用程序的狀態有很多,比如:程序啟動、進入活躍狀態、進到后臺、內存警告、收到遠程消息等等;

(3)任何接受了UIApplicationDelegate協議的對象都可以成為應用程序代理;

(4)一旦應用程序的某種狀態觸發,就會執行相應的代理方法。

5、UIApplicationDelegate:

  UIApplicationDelegate是一個OC的協議。里面聲明了一堆方法,這些方法都與應用程序運行狀態有關,它們由應用程序代理實現。UIApplication 對象負責調用。(詳見下表)

  

6、UIWindow:

(1)UIWindow作為應用程序的窗口,在應用程序啟動的時候就要加載,各種UI界面都是借助window來呈現的;

(2)UIWindow在創建的時候,應該和屏幕一樣大。通過[UIScreen mainScreen].bounds可以獲得屏幕大小;

(3)[self.window makeKeyAndVisible];//讓window變的可視,即顯示 window。

五、總結

(1)UILabel、UITextField、UIButton都是特別常用的控件;

(2)他們都是直接或者間接繼承于UIView,只是外觀和功能不同;

(3)熟悉各種控件的特點和方法是我們后期做項目的保障;

(4)delegate是iOS重要的設計模式,理解它的原理,有助于寫出優質代碼;

(5)main函數是程序的入口。UIApplicationMain函數創建了應用程序實例,應 用程序代理實例,建立事件循環。

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

 Email:dingding3w@126.com


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 琼结县| 年辖:市辖区| 瑞昌市| 白银市| 安宁市| 花垣县| 金平| 唐河县| 陕西省| 郁南县| 明光市| 永宁县| 河南省| 莎车县| 宜兴市| 德昌县| 翼城县| 沙洋县| 平塘县| 张家口市| 揭东县| 稷山县| 溧水县| 永济市| 乡宁县| 和顺县| 平果县| 岑溪市| 公主岭市| 富裕县| 四会市| 临漳县| 吴堡县| 肇庆市| 柯坪县| 泰州市| 黄骅市| 五原县| 丹江口市| 大竹县| 石阡县|