今天寫的是用代碼實作一個簡單界面,代碼重複率比較高,可讀性不是太好,但是适合初學者看看,實作的簡單功能界面:
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,如需轉載請自行聯系原作者