【iOS開發(fā)-15】UITextField常用屬性歸納:文本框樣式、文字樣式、鍵盤樣式、左右視圖樣式、清除按鈕設(shè)置等
來源:程序員人生 發(fā)布時(shí)間:2014-10-02 08:00:00 閱讀次數(shù):2381次
(1)可以根據(jù)需要設(shè)置文本框的樣式(包括形狀、邊框顏色、背景等)。
(2)可以根據(jù)需要設(shè)置文字顯示樣式(包括輸入密碼時(shí)的密文顯示、文字橫向居中、縱向居中上下、輸入的文字是否首席木大寫、文字超過后是否縮小還是向右滾動(dòng)等)。
(3)可以根據(jù)需要設(shè)置各種不同的鍵盤樣式(只有數(shù)字、只有字母等等)。
(4)還有inputView可以彈出一個(gè)視圖,用于取代彈出鍵盤,暫時(shí)不知道什么用處,但貌似可以用得地方很多啊。
(5)還有return的樣式設(shè)置,可以設(shè)置為Google也可以設(shè)置為Go和Search等更形象的按鈕。
(6)還有一個(gè)clearsOnBeginEditing是否設(shè)置清除按鈕也很常用。
(7)還有用得比較多得估計(jì)是左右視圖,也就是我們常見的用戶名和密碼的前面還有一個(gè)小icon圖片表示用戶的“小人”和表示密碼的“鎖”的圖片,用左右視圖可以加載進(jìn)來,當(dāng)然最后要記得設(shè)置左右視圖模式為Always,不然默認(rèn)是Never不顯示的。
- (void)viewDidLoad {
//textfiled1本想是textField1的,但不影響
UITextField *textFiled1=[[UITextField alloc]init];
//此時(shí)textField1已存在,但因?yàn)槭峭该鞅尘埃钥床灰姡屈c(diǎn)擊那塊地方會(huì)發(fā)現(xiàn)光標(biāo)閃爍可寫
//為了證明是透明背景而不是白色背景,我們可以設(shè)置self.view背景為紅色,看看textField1是白色還是透明色
// self.view.backgroundColor=[UIColor redColor];
textFiled1.frame=CGRectMake(10, 30, 300, 30);
//設(shè)置邊框樣式
//UITextBorderStyleRoundedRect-圓角矩形,背景是白色,不再是透明的
//UITextBorderStyleLine-矩形,黑色邊框,透明背景
//UITextBorderStyleBezel-和上面類似,但是是灰色的邊框,背景透明
textFiled1.borderStyle=UITextBorderStyleRoundedRect;
//設(shè)置背景顏色,會(huì)覆蓋上面圓角矩形默認(rèn)的白色背景
textFiled1.backgroundColor=[UIColor purpleColor];
//設(shè)置提示(默認(rèn))文字
textFiled1.placeholder=@"請(qǐng)輸入您的密碼";
//設(shè)置密文輸入,就是和輸入密碼時(shí)類似的顯示為小圓點(diǎn)
textFiled1.secureTextEntry=YES;
//設(shè)置鍵盤樣式,比如銀行取款密碼只需要數(shù)字,有的輸入郵箱需要@等等
//UIKeyboardTypeAlphabet和UIKeyboardTypeDefault類似,就是我們平時(shí)看到那樣,都是字母,然后有個(gè)按鍵可以切換符號(hào)
//UIKeyboardTypeASCIICapable好像和上面差不多
//UIKeyboardTypeDecimalPad,UIKeyboardTypeNumberPad都是數(shù)字,但前者多了一個(gè)“小數(shù)點(diǎn)”按鍵
//UIKeyboardTypeEmailAddress-除了字母還有小數(shù)點(diǎn)和@出現(xiàn)
//UIKeyboardTypeNamePhonePad-貌似正常
//UIKeyboardTypePhonePad-電話鍵盤,不僅有數(shù)字還有*和#的那種
//UIKeyboardTypeNumbersAndPunctuation-只有數(shù)字和標(biāo)點(diǎn)符號(hào)
//UIKeyboardTypeTwitter-除了字母還有@和#,這是微博的符號(hào)
//UIKeyboardTypeURL-除字母,還有.com按鈕,方便輸入
//UIKeyboardTypeWebSearch-主要區(qū)別在于return鍵變成了GO鍵
//注意:如果是最xcode6下的模擬器的話,默認(rèn)是不調(diào)出軟鍵盤的,按CMD+K可以調(diào)出,或者在菜單Hardware里地Keyboard里設(shè)置
textFiled1.keyboardType=UIKeyboardTypeWebSearch;
//設(shè)置鍵盤外觀
//UIKeyboardAppearanceDark和UIKeyboardAppearanceAlert都是把鍵盤背景變成半透明灰色區(qū)別不明顯
//UIKeyboardAppearanceLight貌似和UIKeyboardAppearanceDefault一樣,沒啥區(qū)別
textFiled1.keyboardAppearance=UIKeyboardAppearanceAlert;
//設(shè)置彈出視圖,inputView即彈出的不是鍵盤而是這個(gè)視圖
//設(shè)置的frame時(shí),只有高度有用,其他x和y和寬都是無效的,寬是默認(rèn)的整個(gè)鍵盤寬度
UIImageView *imgView1=[[UIImageView alloc]initWithImage:[UIImage imageNamed:@"logo-60@3x.png"]];
imgView1.frame=CGRectMake(60, 60, 300, 300);
textFiled1.inputView=imgView1;
//設(shè)置左視圖,就是用戶名和密碼,有時(shí)候放個(gè)圖片的位置
UIView *view1=[[UIView alloc]init];
//x和y無效,x都是0,而y是根據(jù)高度來自動(dòng)調(diào)整的。即高度如果超過textField則默認(rèn)是textField高,如小于textField高度,則上下居中顯示。唯一有效的就是寬度
view1.frame=CGRectMake(10, 500, 50, 10);
view1.backgroundColor=[UIColor orangeColor];
textFiled1.leftView=view1;
//最重要的時(shí):默認(rèn)它是不顯示的即UITextFieldViewModeNever,我們可以設(shè)置永遠(yuǎn)顯示UITextFieldViewModeAlways
//UITextFieldViewModeUnlessEditing-一開始就有,點(diǎn)擊框,呃,貌似還有
//UITextFieldViewModeWhileEditing-一開始沒有,點(diǎn)擊框就出現(xiàn)
textFiled1.leftViewMode=UITextFieldViewModeAlways;
//同樣,我們可以設(shè)置右視圖,當(dāng)然也可以加載和圖片進(jìn)來
UIImageView *imgView2=[[UIImageView alloc]initWithImage:[UIImage imageNamed:@"logo-60@3x.png"]];
imgView2.frame=CGRectMake(10, 500, 50, 10);
textFiled1.rightView=imgView2;
textFiled1.rightViewMode=UITextFieldViewModeAlways;
//設(shè)置清除按鈕,就是那個(gè)叉叉X,一點(diǎn)擊整個(gè)輸入框的文字全部刪除重新輸入的那個(gè)X(我們先注釋掉不讓右視圖顯示,來查看效果)
//其實(shí)我們?cè)趯慶learButtonMode是它又提示說這是一個(gè)UITextFieldViewMode類型,所以也是和上面一樣
textFiled1.clearButtonMode=UITextFieldViewModeWhileEditing;
//再次編輯時(shí)是否清空內(nèi)容,這個(gè)除特定場(chǎng)景外很少用,會(huì)讓用戶抓狂的
//當(dāng)然為了模擬再次編輯,我們需要鼠標(biāo)點(diǎn)到其他地方然后再點(diǎn)回來,所以再創(chuàng)建一個(gè)textField
textFiled1.clearsOnBeginEditing=NO;
//這個(gè)clearsOnInsertion貌似點(diǎn)擊回去再次編輯時(shí)不清楚,但是只要一輸入內(nèi)容就會(huì)清除之前的
textFiled1.clearsOnInsertion=YES;
UITextField *textField2=[[UITextField alloc]init];
textField2.frame=CGRectMake(10, 80, 300, 100);
textField2.borderStyle=UITextBorderStyleRoundedRect;
[self.view addSubview:textField2];
//我們用上面創(chuàng)建的textField2來做如下
//縱向?qū)R方式,默認(rèn)是居中
//UIControlContentVerticalAlignmentCenter居中,所以Top、Bottom就是居上居下。Fill貌似和Top差不多
textField2.contentVerticalAlignment=UIControlContentVerticalAlignmentFill;
//當(dāng)然還有橫向?qū)R
//也有左中右和Fill四種,但是貌似沒看到什么效果,可能對(duì)文字無效,因?yàn)橛袑iT的針對(duì)文字的設(shè)置
textField2.contentHorizontalAlignment=UIControlContentHorizontalAlignmentRight;
//設(shè)置文字對(duì)齊方式
//同樣我們輸入textAlignment時(shí)有提示是NSTextAlignment類型,有好幾種,不細(xì)講
textField2.textAlignment=NSTextAlignmentCenter;
//設(shè)置調(diào)整文字大小以適配寬度(即輸入不下時(shí)縮小文字,實(shí)在縮小不了了,就向后滾動(dòng)),默認(rèn)是向右滾動(dòng)的
textField2.adjustsFontSizeToFitWidth=YES;
//設(shè)置最小字號(hào),和上面有關(guān),即小于這個(gè)字號(hào)的時(shí)候,我就不縮小了,直接向右滾動(dòng)
textField2.minimumFontSize=2;
//設(shè)置字母大小樣式,輸入autocapitalizationType時(shí)有提示是UITextAutocapitalizationType類型
//UITextAutocapitalizationTypeAllCharacters-所有字母大寫(用鍵盤輸入的話發(fā)現(xiàn)失效,需要用軟鍵盤輸入才有效,以下同理)
//UITextAutocapitalizationTypeWords-單詞首字母大寫
//UITextAutocapitalizationTypeSentences-句首字母大寫
textField2.autocapitalizationType=UITextAutocapitalizationTypeSentences;
//設(shè)置return樣式,有Done/Go/Next/Join/Google/Search/Yahoo/EmergencyCall/Send等,除了默認(rèn)外,其他的按鈕都是藍(lán)顏色背景
textField2.returnKeyType=UIReturnKeyEmergencyCall;
[self.view addSubview:textFiled1];
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對(duì)您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)