Interface Builder(簡稱IB,界面構建器)


1.Interface Builder(簡稱IB,界面構建器)

 

  1.1 是什麼?

     一個可視化的界面編輯工具軟件,在xcode4之後整合到了xcode中

 

  1.2 作用?

     通過可視化的界面設置,能夠少寫或不寫代碼而完成界面的設計,從而減少在控制器的viewDidLoad中寫的大量有關創建控件及設置屬性的代碼

 

  1.3 工作原理

     將界面所需控件的設置保存到xib文件中,在創建控制器實例的時候,系統會根據指定的xib文件來自動創建視圖中的各個控件的實例、設置實例的屬性,將其用於對控制器自帶的視圖的初始化中。所以,在創建控制器實例時,需要使用initWithNibName方法來指定有關視圖的配置需要加載的文件是哪一個

 

  1.4 所需文件

      XxxxYyyy.h

      XxxxYyyy.m

      XxxxYyyy.xib (xml  interface builder)

 

 1.5 IBOutlet,IBAction

     由於控制器的視圖中所需的控件都由系統根據xib文件自動創建完成,所以view已經對這些控件對象是strong(強引用)了,但是,此時控制器無法訪問系統創建的這些控件,於是需要通過特殊的方法來獲取系統創建的這些對象的引用。

     如果,是對IB中的對象添加屬性訪問,讓控件成爲一個外界可以訪問的輸出口,則通過連線的方式,使其成爲控制其的IBOutlet屬性

     如果,是對IB中的對象添加事件的響應,則通過連線的方式,爲控件添加IBAction行爲

 

     添加連線的方式:

      a。打開拆分視圖,左邊爲xib文件,右邊爲xib對應的控制器m文件

      b。選中控件,按下control

      c。在控件上按下鼠標左鍵,拖拽到右側的指定位置

      d。如果是添加輸出口,則拖拽到擴展中

      e。如果是添加action,則拖拽到類的實現中

 

  1.6 action的參數

      在爲控件添加事件響應時,可以添加一個參數,默認爲id類型,代表的是發生事件的源頭是哪個控件,或者說本次事件的發送者是誰

      在需要用到這個參數來區分連到同一個方法上的多個控件的時候,可以在連線時,選擇type參數,設置爲具體的某種控件類型,不需要再在方法內進行類型轉換了。

 

  1.7 使用IB連線時的注意事項

      如果對IB中的控件連線後,又刪除,那麼此時刪掉的只是代碼中的變量或方法,並沒有刪掉界面中控件記錄的連線,一定要在xib中,選中控件,右鍵,查看綁定的線有幾條,將不需要的連線刪掉,纔不會出錯。

 

2.基礎控件(UIStepper   UISlider    UISwitch)

  2.1 UIStepper 步進控件

     重要屬性:

        .value

        .maximumValue

        .minimumValue

        .stepValue

    常用事件:

        value Changed事件:當數值改變時觸發

  2.2 UISlider 滑塊控件

     重要屬性:

        .value

     重要事件:

        value Changed事件:當數值改變時觸發

  2.3 UISwitch 開關控件

     重要屬性:

        .on (BOOL)   獲取或設置開關的狀態

        .enabled(BOOL) 獲取或設置控件是否可用

     重要的事件:

        valueChanged事件

 

3.UITextField

   3.1 是什麼?

        是單行的文本輸入框,支持用戶的輸入

   3.2 屬性

        .text 獲取或設置文本框內的文本

        … …

  

   3.3 系統彈出的鍵盤

      第一響應者:當用戶觸摸界面時,系統會根據手指觸摸的位置層層定位到具體的控件,如果,本次觸點在文本框控件的區域內,那麼文本框就負責對本次的觸碰事件進行響應,由於文本框比較特殊,所以系統自動將文本框設置爲響應事件的第一關,並且自動彈出鍵盤。

 

      插播:

    當用戶點擊屏幕後,首先開啓的是查找hit-View的過程。從window開始,給所有直接子視圖發hit-Test的消息,直到某一個控件沒有子視圖了,並且這個觸點在這個子視圖中,則返回這個控件,於是hit-View找到了

    找到hit-View後,view則成爲了需要第一個爲這個事件提供響應的對象,如果,該對象沒有提供事件響應,則該事件對象會向視圖的父視圖繼續傳遞,如果父視圖依然沒有提供響應,則繼續向上傳遞,直到傳遞到UIApplication對象,依然沒有處理的話,則拋棄該事件。這個過程叫做響應者鏈。

 

     3.4 如何關閉鍵盤

        方法一:讓鍵盤放棄第一響應者的身份即可

 [self.textField resignFirstResponder];

      

        方法二:讓鍵盤所在的父視圖結束編輯狀態

            

[self.view endEditing.YES];

    3.5什麼時候關閉鍵盤呢?(關閉鍵盤的時機)    

            時機一:點擊鍵盤右下角的按鍵      

                     爲文本框添加一個  事件

 

            機二:點擊屏幕的空白部分

                    重寫控制器的touchesBegan:withEvent:方法

        

4.UIAlertView &UIActionSheet

 

作業:

1.界面如下:

   [輸入框][發送按鈕]

   1)當點擊發送按鈕後,界面上會出現一個UILabel,內容就是輸入框中的內容,此時要求,收起鍵盤,清空輸入框

   2)當用戶點擊鍵盤右下角的按鍵時,功能和1相同

   3)label本身設置爲寬280,高40,距離左邊20個點

   4)多了label不能重合

 

2.界面如下:

   [輸入框 賬號]

   [輸入框 密碼]

   [登錄   按鈕]

   [UILabel 顯示當前狀態(登錄後顯示用戶名,沒登錄顯示未登錄)]

     1)用戶輸入完用戶名和密碼後,點擊登錄,判斷是否可以登錄,如果登錄成功,label上顯示當前用戶的用戶名,如果沒有登錄,顯示未登錄

     //2)當用戶沒有填寫用戶名和密碼時,點擊登錄,提供用戶輸入用戶名和密碼

     3)第一個textField支持Next功能,第二是Done


--------------------------------------------------------------------------------------------------------

總結:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章