天天看點

代碼實作Lable 、textField建立界面以及鍵盤的處理

今天寫的是用代碼實作一個簡單界面,代碼重複率比較高,可讀性不是太好,但是适合初學者看看,實作的簡單功能界面:

1.建立一個新工程叫LTFDemo; File->New->Project ->single View Application -> next

2.打開LTFViewController.h檔案,添加UITextFieldDelegate協定,因為TextField裡輸入内容時需要對鍵盤進行一些設定。界面需要一些布局,在LTFViewController.h檔案一些聲明對象

3.例舉一個Lable的代碼屬性及功能的實作過程

初始化lable的位置和大小,CGRectMake()函數中的參數分别是原點坐标x和y,後面兩個參數表示lable的寬度(width)和高度(height),

studentLable=[[UILabelalloc]initWithFrame:CGRectMake(100,10,100,30)];

設定Lable的字型顔色值顔色,

[studentLable setTextColor:[UIColor blackColor]];

設定lable字型大小

studentLable.font=[UIFontsystemFontOfSize:20];

設定lable的背景顔色

studentLable.backgroundColor = [UIColor redColor];

設定lable的标題字型對齊方式,此處居中對其

[studentLable setTextAlignment:UITextAlignmentCenter];

設定lable标題

studentLable.text=@"學 生";

把lable添加到視圖上,少了這一步視圖上使顯示不出來的

[self.view addSubview:studentLable];

4.例舉一個TextField的代碼的實作其屬性和功能的過程

//初始化坐标位置

sNameTextField=[[UITextFieldalloc]initWithFrame:CGRectMake(100,60,200,30)];

//為空白文本字段繪制一個灰色字元串作為占位符,提示作用     

sNameTextField.placeholder =@"輸入姓名";

 //預設就是左對齊,這個是UITextField擴充屬性   

sNameTextField.textAlignment =UITextAlignmentLeft;

 //設定textField的形狀    

sNameTextField.borderStyle=UITextBorderStyleRoundedRect; 

//設定鍵盤完成按鈕

sNameTextField.returnKeyType=UIReturnKeyDone;

//委托類需要遵守UITextFieldDelegate協定    

sNameTextField.delegate=self; 

//設定TextFiel輸入框字型大小

sNameTextField.font = [UIFontsystemFontOfSize:18]; 

//安全設定,密文保護設定,顯示點點,常用于密碼設定欄

sNameTextField.secureTextEntry = YES;  

//   把TextField添加到視圖上

 [self.viewaddSubview:sNameTextField];

//輸入年齡需要啟用數字鍵盤,此處實作自動跳轉到數字鍵盤

sAgeTextField.keyboardType =UIKeyboardTypeNumberPad;

5.介紹完lable和TextField代碼實作,打開LTFViewController.m檔案在ViewDidLoad中添加初始化代碼,

6.然後用代理方法處理的就是鍵盤的操作,因為當鍵盤彈起的時候,在最下面的lable和textField可能會鍵盤遮擋,

在ViewDidLoad中我們有這樣sNameTextField.returnKeyType=UIReturnKeyDone一段代碼,作用就是當編輯完成後鍵盤右下角出現一個Done鍵,如果是中文輸入法出現的是确定鍵,然後調用代理方法textFieldShouldReturn,當我們按下Done時,鍵盤就會退出;

resignFirstResponder(交出自己的第一響應者的身份,可以重寫函數,這樣如果寫出傳回no的時候當調用這個方法的時候它會拒絕交出第一響應者的身份)

7.當需要輸入數字時候的時候 sAgeTextField.keyboardType = UIKeyboardTypeNumberPad;可以自動切換到數字鍵盤,鍵盤的八種風格

typedefenum {  

    UIKeyboardTypeDefault,               //預設鍵盤:支援所有字元  

    UIKeyboardTypeASCIICapable,          //支援ASCII的預設鍵盤  

    UIKeyboardTypeNumbersAndPunctuation, //标準電話鍵盤,支援+*#等符号  

    UIKeyboardTypeURL,                   // URL鍵盤,有.com按鈕;隻支援URL字元  

    UIKeyboardTypeNumberPad,             //數字鍵盤  

    UIKeyboardTypePhonePad,              //電話鍵盤  

    UIKeyboardTypeNamePhonePad,          //電話鍵盤,也支援輸入人名字  

    UIKeyboardTypeEmailAddress,          //用于輸入電子郵件位址的鍵盤  

} UIKeyboar;

8.處理鍵盤遮擋視圖的方法:

當開始點選textField會調用的方法,鍵盤高度216,當觸摸高度在216一下extField時候,調整視圖,把視圖縱坐标向上增加216,orign(0,-216),然後view視圖的高度增加216像素,相當于視圖為320*696像素,如果設定增加216像素給view視圖,會出現鍵盤遮蓋部分為一篇黑色區域背景,當退出鍵盤是黑色會顯示出來,給人視覺效果體驗不好;當對textField編輯結束時調用textFieldDidEndEditing方法,調整視圖為初始位置,frame.origin.y =20;為什麼把視圖的原點坐标縱坐标設定為20,因為iphone視圖最上面通知欄占了20個像素;

9再附上其他幾個委托方法源碼

10.數字鍵盤并沒有Done鍵,就不能退出按鈕,通過[sAgeTextFieldaddTarget:selfaction:@selector(textFieldDone:) forControlEvents:UIControlEventTouchDown];

這個相當于給TextField增加了一個按鈕的功能,調用textFieldDone,當向輸入框編輯完内容後,再次點選輸入框鍵盤就退出了;

  本文轉自新風作浪 51CTO部落格,原文連結:http://blog.51cto.com/duxinfeng/1208762,如需轉載請自行聯系原作者

繼續閱讀