UITextField 游標位置,placeholder樣式
一.Placeholder 樣式更改
方法一:重寫drawPlaceholderInRect:(CGRect)rect
方法
-(void)drawPlaceholderInRect:(CGRect)rect{
UIColor *placeholderColor = [UIColor dt_ColorWithString:@"#999999"];//設定顏色
[placeholderColor setFill];
CGRect placeholderRect = CGRectMake(rect.origin.x+5, (rect.size.height- self.font.pointSize)/2, rect.size.width, self.font.lineHeight );//設定Placeholder 位置.尺寸
NSMutableParagraphStyle *style = [[NSMutableParagraphStyle alloc] init];
style.lineBreakMode = NSLineBreakByTruncatingTail;
style.alignment = self.textAlignment;
NSDictionary *attr = [NSDictionary dictionaryWithObjectsAndKeys:style,NSParagraphStyleAttributeName, self.font, NSFontAttributeName, placeholderColor, NSForegroundColorAttributeName, nil];//設定Placeholder 樣式
[self.placeholder drawInRect:placeholderRect withAttributes:attr];
}
方法二:通過KVC修改Placeholder顏色
UITextField *textField1 = [[UITextField alloc] init];
textField1.frame = CGRectMake(textFieldX, CGRectGetMaxY(textField.frame) + padding, viewWidth - 2 * textFieldX, textFieldH);
textField1.borderStyle = UITextBorderStyleRoundedRect;
textField1.placeholder = @"請輸入佔位文字";
textField1.font = [UIFont systemFontOfSize:14];
// "通過KVC修改佔位文字的顏色"
[textField1 setValue:[UIColor greenColor] forKeyPath:@"_placeholderLabel.textColor"];
[self.view addSubview:textField1];
方法三: 修改attributedPlaceholder
屬性
NSAttributedString *attrString = [[NSAttributedString alloc] initWithString:@"請輸入佔位文字" attributes:
@{NSForegroundColorAttributeName:[UIColor redColor],
NSFontAttributeName:textField.font
}];
textField.attributedPlaceholder = attrString;
二.控制placeHolder的位置
-(CGRect)placeholderRectForBounds:(CGRect)bounds
{
CGRect inset = CGRectMake(bounds.origin.x+100, bounds.origin.y, bounds.size.width -10, bounds.size.height);//更好理解些
return inset;
}
三. 修改文字展示區域,一般跟editingRectForBounds一起重寫
- (CGRect)textRectForBounds:(CGRect)bounds
{
CGRect inset = CGRectMake(bounds.origin.x+10, bounds.origin.y, bounds.size.width-25, bounds.size.height);//更好理解些
return inset;
}
// 重寫來編輯區域,可以改變游標起始位置,以及游標最右到什麼地方,placeHolder的位置也會改變
-(CGRect)editingRectForBounds:(CGRect)bounds
{
CGRect inset = CGRectMake(bounds.origin.x+10, bounds.origin.y, bounds.size.width-25, bounds.size.height);//更好理解些
return inset;
}
四.UITextField 關於Rect的一些方法介紹
– textRectForBounds: //重寫來重置文字區域
– drawTextInRect: //改變繪文字屬性.重寫時呼叫super可以按預設圖形屬性繪製,若自己完全重寫繪製函式,就不用呼叫super了.
– placeholderRectForBounds: //重寫來重置佔位符區域
– drawPlaceholderInRect: //重寫改變繪製佔位符屬性.重寫時呼叫super可以按預設圖形屬性繪製,若自己完全重寫繪製函式,就不用呼叫super了
– borderRectForBounds: //重寫來重置邊緣區域
– editingRectForBounds: //重寫來重置編輯區域
– clearButtonRectForBounds: //重寫來重置clearButton位置,改變size可能導致button的圖片失真
– leftViewRectForBounds: // leftView 的位置
– rightViewRectForBounds: // rightView的位置
相關文章
- input 獲取游標位置與設定游標位置
- 【CSS: cursor】滑鼠游標指標樣式大全CSS指標
- pixi.js 自定義游標樣式JS
- 設定/獲得游標位置
- CSS 設定placeholder文字樣式CSS
- Win10如何更改游標指標顏色樣式 win10更改滑鼠指標顏色樣式的步驟Win10指標
- Recoil Input 游標位置被重置到末尾的問題
- Jquery獲取敲擊回車時游標所在的位置jQuery
- vue3中ctrl加回車換行,游標位置設定Vue
- 一句話設定UITextField、UITextview的字數限制和placeholderUITextView
- 微信小程式-自定義placeholder顏色和樣式微信小程式
- PLSQL Language Referenc-PL/SQL靜態SQL-靜態SQL的描述-游標-顯式游標SQL
- 控制input輸入框游標的位置
- 游標操作快捷鍵
- winform之手繪矩形及游標字串與游標關聯顯示ORM字串
- UITextFieldUI
- (12)mysql 中的游標MySql
- 阻止游標預設事件事件
- secureCRT游標不見啦Securecrt
- css 滑鼠游標設定CSS
- PLSQL Language Referenc-PL/SQL靜態SQL-靜態SQL的描述-游標-開啟和關閉顯式游標SQL
- win10游標怎麼縮放_win10游標縮放方法Win10
- 趣味小教程|在 macOS Monterey 中更改游標的顏色樣式Mac
- Oracle - 共享遊標、父子游標、硬軟解析Oracle
- cad游標大小怎麼調 cad游標中心正方形大小設定
- win10如何換滑鼠游標 win10更換滑鼠游標怎麼操作Win10
- PLSQL Language Referenc-PL/SQL靜態SQL-游標變數-建立游標變數SQL變數
- ios11.3之前H5中input框游標位置怪異(不正確),已解決!iOSH5
- 和免疫熒游標記說拜拜 | 谷歌Cell論文:深度學習模型預測熒光位置谷歌深度學習模型
- cad標註樣式設定引數 怎麼設定cad標註樣式
- win10 更改游標顏色方法 win10 滑鼠游標顏色怎麼改Win10
- PLSQL Language Referenc-PL/SQL靜態SQL-游標變數-游標變數賦值SQL變數賦值
- HTML標籤樣式初始化HTML
- CSS重置標籤預設樣式CSS
- CSS自定義滑鼠指標樣式CSS指標
- JQ操作標籤--樣式操作、 位置操作、尺寸、 文字操作、 獲取值操作、 屬性操作、文件處理、事件事件
- Web 中的“選區”和“游標”Web
- (012)mysql中的游標MySql