關於textfield的一些細節

2021-07-06 06:41:00 字數 2199 閱讀 5746

我們有時需要定製化uitextfield物件的風格,可以新增許多不同的重寫方法,來改變文字欄位的顯示行為。這些方法都會返回乙個cgrect結構,制定了文字字段每個部件的邊界範圍,甚至修改placeholder顏色,字型。

1. textview/textfield游標顏色可通過設定tintcolor屬性進行修改:

self.textview.tintcolor = [uicolor redcolor];

2、textview/textfield自定義游標長度或高度, 可通過重寫父類方法caretrectforposition:實現, 具體設定如下:

@inte***ce customtextview : uitextview  

重寫父類方法: 

- (cgrect)caretrectforposition:(uitextposition *)position

– textrectforbounds:      //重寫來重置文字區域

– drawtextinrect:         //改變繪文字屬性.重寫時呼叫super可以按預設圖形屬性繪製,若自己完全重寫繪製函式,就不用呼叫super了.

– placeholderrectforbounds:  //重寫來重置佔位符區域

– drawplaceholderinrect:  //重寫改變繪製佔位符屬性.重寫時呼叫super可以按預設圖形屬性繪製,若自己完全重寫繪製函式,就不用呼叫super了

– borderrectforbounds:  //重寫來重置邊緣區域

– editingrectforbounds:  //重寫來重置編輯區域

– clearbuttonrectforbounds:  //重寫來重置clearbutton位置,改變size可能導致button的失真

– leftviewrectforbounds:

– rightviewrectforbounds:

通過– drawplaceholderinrect:方法可改變placeholder顏色、字型,請看**:

首先定義乙個類customtextfield讓它繼承uitextfield實現以下方法即可:

//控制清除按鈕的位置

-(cgrect)clearbuttonrectforbounds:(cgrect)bounds

//控制placeholder的位置,左右縮20

-(cgrect)placeholderrectforbounds:(cgrect)bounds

//控制顯示文字的位置

-(cgrect)textrectforbounds:(cgrect)bounds

//控制編輯文字的位置

-(cgrect)editingrectforbounds:(cgrect)bounds

//控制左檢視位置

-(cgrect)leftviewrectforbounds:(cgrect)bounds

//控制placeholder的顏色、字型

- (void)drawplaceholderinrect:(cgrect)rect  

//下面是使用customtextfield的**,可放在viewdidload等方法中

_textfield = [[customtextfield alloc] initwithframe:cgrectmake(20, 150,280, 30)];

_textfield.placeholder = @"請輸入帳號資訊";

_textfield.borderstyle = uitextborderstyleroundedrect;

_textfield.textalignment = uitextalignmentleft;

_textfield.delegate = self;

_textfield.clearbuttonmode = uitextfieldviewmodewhileediting;

_textfield.text = @"aa";

uiimageview *imgv = [[uiimageview alloc] initwithimage:[uiimageimagenamed:@"icon-iwant-2.png"]];

_textfield.leftview = imgv;

_textfield.leftviewmode = uitextfieldviewmodealways;

[self.view addsubview:_textfield];

iOS開發textfield的一些方法彙總

1,動態獲得textfield 的輸入內容 在 bool textfield uitextfield textfield shouldchangecharactersinrange nsrange range replacementstring nsstring string新增如下 就可以獲得全部...

iOS開發textfield的一些方法彙總

1,動態獲得textfield 的輸入內容 在 bool textfield uitextfield textfield shouldchangecharactersinrange nsrange range replacementstring nsstring string新增如下 就可以獲得全部...

關於RemoteView 的一些字型的一些問題

最近在做乙個 在notification 新增 天氣通知的小部分 發現困擾在 如何給 remoteview 中的字型 作修改 大家都知道 textview 設定字型 在xml 中 可以 設定 3種 而其他字型的設定 需要通過 typeface 去設定 具體 將字型放置在asset 資料夾中 type...