iOS UITextField的使用

來源:互聯網
上載者:User

之前,對於UITextField的使用沒有具體的研究,有些時候總感覺用起來有局限性,其即時有些屬性之前不知道,今天對於UITextField做下總結。 一、邊框的顯示 1、系統預設的邊框

UITextField *textFieldSystem = [[UITextField alloc] initWithFrame:CGRectMake(10, 50, self.view.frame.size.width-20, 30)];textFieldSystem.placeholder = @"請輸入文字";textFieldSystem.borderStyle = UITextBorderStyleRoundedRect; //設定邊框的類型[self.view addSubview:textFieldSystem];

UITextBorderStyle 邊框類型是一個枚舉,總共有4種類型,預設的是UITextBorderStyleNone 無邊框類型,所以我們建立的時候需要給其設定邊框的類型,否則什麼都看不到。

typedef NS_ENUM(NSInteger, UITextBorderStyle) {    UITextBorderStyleNone,    UITextBorderStyleLine,    UITextBorderStyleBezel,    UITextBorderStyleRoundedRect};
2、自訂的邊框

如果,你覺得系統內建的UITextField滿足不了你的需求,比如說你的圓角效果要更大些,或者你要把邊框的顏色設定成紅色的,那麼你就需要自訂UITextField的邊框了。

(1)建立一個類,叫做YCTextField,整合於UITextField,用於重寫UITextField的一些方法。

#import "YCTextField.h"@implementation YCTextField//重寫來重設預留位置地區- (CGRect)placeholderRectForBounds:(CGRect)bounds{    return CGRectInset(bounds, 8, 4);}//重寫來重設邊緣地區- (CGRect)textRectForBounds:(CGRect)bounds{    return CGRectInset(bounds, 18,4);}//重寫來重設編輯地區- (CGRect)editingRectForBounds:(CGRect)bounds{    return CGRectInset(bounds, 20, 4);}

小編,從官方文檔裡面看到有這幾個方法很是開森,拷貝過來就想直接用。結果一直看不到效果,後面才發現,蘋果官方文檔裡面特別說明了,這些方法需要重寫不能直接調用。

(2) 自訂邊框的屬性

記得,匯入標頭檔YCTextField.h

 YCTextField *textField = [[YCTextField alloc] initWithFrame:CGRectMake(10, 100, self.view.frame.size.width-20, 40)];    textField.placeholder = @"請輸入文字";    textField.layer.borderColor = [UIColor redColor].CGColor; //設定邊框的顏色    textField.layer.borderWidth = 1.0f; //設定邊框的寬度    textField.layer.cornerRadius = 12.0f; //設定邊框的圓角大小    [self.view addSubview:textField];
二、其他的屬性 1、設定輸入框中的叉號
    textFieldSystem.clearButtonMode = UITextFieldViewModeWhileEditing; 

UITextFieldViewMode 是一個枚舉類型

typedef NS_ENUM(NSInteger, UITextFieldViewMode) {    UITextFieldViewModeNever,    UITextFieldViewModeWhileEditing,    UITextFieldViewModeUnlessEditing,    UITextFieldViewModeAlways};
2、設定鍵盤的類型
    textFieldSystem.keyboardType = UIKeyboardTypeNumberPad;

UIKeyboardType 是一個枚舉類型

typedef enum {    UIKeyboardTypeDefault,               預設鍵盤,支援所有字元             UIKeyboardTypeASCIICapable,          支援ASCII的預設鍵盤    UIKeyboardTypeNumbersAndPunctuation, 標準電話鍵盤,支援+*#字元    UIKeyboardTypeURL,                    URL鍵盤,支援.com按鈕 只支援URL字元    UIKeyboardTypeNumberPad,             數字鍵台    UIKeyboardTypePhonePad,             電話鍵盤    UIKeyboardTypeNamePhonePad,          電話鍵盤,也支援輸入人名    UIKeyboardTypeEmailAddress,          用於輸入電子 郵件地址的鍵盤         UIKeyboardTypeDecimalPad,            數字鍵台 有數字和小數點    UIKeyboardTypeTwitter,               最佳化的鍵盤,方便輸入@、#字元    UIKeyboardTypeAlphabet = UIKeyboardTypeASCIICapable, } UIKeyboardType;
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.