最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

iOS開發(fā)之自定義UITextField的方法

 更新時(shí)間:2016年05月05日 10:14:31   作者:blue-fly  
UITextField是IOS開發(fā)中用戶交互中重要的一個(gè)控件,常被用來(lái)做賬號(hào)密碼框,輸入信息框等。本文給大家介紹iOS開發(fā)之自定義UITextField的方法,感興趣的朋友一起學(xué)習(xí)吧

UITextField是IOS開發(fā)中用戶交互中重要的一個(gè)控件,常被用來(lái)做賬號(hào)密碼框,輸入信息框等。

觀察效果圖

UITextField有以下幾種特點(diǎn):

1.默認(rèn)占位文字是灰色的

2.當(dāng)光標(biāo)點(diǎn)上去時(shí),占位文字變?yōu)榘咨?br />

3.光標(biāo)是白色的

接下來(lái)我們通過(guò)不同的方法來(lái)解決問(wèn)題

一.將xib中的UITextField與代碼關(guān)聯(lián)

通過(guò)NSAttributeString方法來(lái)更改占位文字的屬性
(void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
//文字屬性
NSMutableDictionary *dict = [NSMutableDictionary dictionary];
dict[NSForegroundColorAttributeName] = [UIColor grayColor];
//帶有屬性的文字(富文本屬性)NSAttributeString
NSAttributedString *attr = [[NSAttributedString alloc] initWithString:@"手機(jī)號(hào)" attributes:dict];
self.phoneField.attributedPlaceholder = attr;
} 

但是這種方法只能做出第一種效果,而且不具有通用性。

二.自定義一個(gè)UITextField的類

重寫它的drawPlaceholderInRect方法

//畫出占位文字- (void)drawPlaceholderInRect:(CGRect)rect {
[self.placeholder drawInRect:CGRectMake(0, 13, self.size.width, 25) withAttributes:@{
NSForegroundColorAttributeName : [UIColor grayColor],
NSFontAttributeName : [UIFont systemFontOfSize:14]
}];
}

這個(gè)方法和上一個(gè)方法類似,只能做出第一種效果,但這個(gè)具有通用性

三.利用Runtime運(yùn)行時(shí)機(jī)制

Runtime是官方的一套C語(yǔ)言庫(kù)

能做出很多底層的操作(比如訪問(wèn)隱藏的一些成員變量\成員方法)

(void)initialize {
unsigned int count = 0;
Ivar *ivars = class_copyIvarList([UITextField class] , &count);
for (int i = 0; i < count; i++) {
//取出成員變量
Ivar ivar = *(ivars + i);
//打印成員變量名字
DDZLog(@"%s",ivar_getName(ivar));
}
}

利用class_copyIvarList這個(gè)C函數(shù),將所有的成員變量打印出來(lái)

這樣我們就可以直接通過(guò)KVC進(jìn)行屬性設(shè)置了

- (void)awakeFromNib {
//修改占位文字顏色
[self setValue:[UIColor grayColor] forKeyPath:@"_placeholderLabel.textColor"]; //設(shè)置光標(biāo)顏色和文字顏色一致
self.tintColor = self.textColor;
}

通過(guò)這個(gè)方法可以完成所有的效果,既具有通用性也簡(jiǎn)單

最后一個(gè)效果是

在獲得焦點(diǎn)時(shí)改變占位文字顏色

在失去焦點(diǎn)時(shí)再改回去

//獲得焦點(diǎn)時(shí)
- (BOOL)becomeFirstResponder {
//改變占位文字顏色
[self setValue:self.textColor forKeyPath:@"_placeholderLabel.textColor"]; return [super becomeFirstResponder];
}
//失去焦點(diǎn)時(shí)
- (BOOL)resignFirstResponder {
//改變占位文字顏色
[self setValue:[UIColor grayColor] forKeyPath:@"_placeholderLabel.textColor"]; return [super resignFirstResponder];
} 

相關(guān)文章

  • iOS動(dòng)態(tài)驗(yàn)證碼實(shí)現(xiàn)代碼

    iOS動(dòng)態(tài)驗(yàn)證碼實(shí)現(xiàn)代碼

    本文通過(guò)實(shí)例代碼給大家介紹了ios動(dòng)態(tài)驗(yàn)證碼的實(shí)現(xiàn)方法,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧
    2018-04-04
  • iOS Xcode升級(jí)Xcode15報(bào)錯(cuò)SDK does not contain 'libarclite'

    iOS Xcode升級(jí)Xcode15報(bào)錯(cuò)SDK does not contain

    這篇文章主要為大家介紹了iOS Xcode 升級(jí)Xcode15報(bào)錯(cuò): SDK does not contain 'libarclite'解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-11-11
  • 詳解iOS獲取通訊錄的4種方式

    詳解iOS獲取通訊錄的4種方式

    這篇文章主要為大家詳細(xì)介紹了iOS獲取通訊錄的4種方式,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • 詳解IOS WebRTC的實(shí)現(xiàn)原理

    詳解IOS WebRTC的實(shí)現(xiàn)原理

    WebRTC,源自網(wǎng)頁(yè)實(shí)時(shí)通信(Web Real-Time Communication)縮寫,它是支持網(wǎng)頁(yè)瀏覽器進(jìn)行實(shí)時(shí)語(yǔ)音對(duì)話或視頻對(duì)話的技術(shù)。它為我們提供了視頻會(huì)議的核心技術(shù),包括音視頻的采集、編解碼、網(wǎng)絡(luò)傳輸、顯示等功能,并且還支持跨平臺(tái):windows,linux,mac,android,ios。
    2021-06-06
  • 清除WKWebView cookies的方法

    清除WKWebView cookies的方法

    下面小編就為大家?guī)?lái)一篇清除WKWebView cookies的方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-04-04
  • ios啟動(dòng)頁(yè)強(qiáng)制豎屏(進(jìn)入App后允許橫屏與豎屏)

    ios啟動(dòng)頁(yè)強(qiáng)制豎屏(進(jìn)入App后允許橫屏與豎屏)

    最近工作遇到這樣一個(gè)需要,當(dāng)進(jìn)入啟動(dòng)頁(yè)需要強(qiáng)制豎屏,而進(jìn)入APP后就允許橫屏與豎屏,通過(guò)查找相關(guān)的資料找到了解決的方法,所以將實(shí)現(xiàn)的方法整理后分享出來(lái),需要的朋友們可以參考借鑒,下面來(lái)一起看看吧。
    2017-03-03
  • iOS實(shí)現(xiàn)圖片六邊形陰影效果

    iOS實(shí)現(xiàn)圖片六邊形陰影效果

    這篇文章給大家分享了如何利用iOS實(shí)現(xiàn)圖片六邊形陰影的效果,文中給出實(shí)現(xiàn)的示例代碼,對(duì)大家的理解和學(xué)習(xí)很有幫助,有需要的可以參考借鑒,下面來(lái)一起看看吧。
    2016-09-09
  • iOS高仿微信表情輸入功能代碼分享

    iOS高仿微信表情輸入功能代碼分享

    最近項(xiàng)目需求,要實(shí)現(xiàn)一個(gè)類似微信的的表情輸入功能,今天小編抽空給大家分享iOS高仿微信表情輸入功能代碼,非常不錯(cuò),感興趣的朋友參考下吧
    2016-11-11
  • iOS開發(fā)之?dāng)?shù)字每隔3位用逗號(hào)分隔

    iOS開發(fā)之?dāng)?shù)字每隔3位用逗號(hào)分隔

    以前在做電商app時(shí)經(jīng)常會(huì)針對(duì)稍大的金額展示出來(lái),需要每隔千位添加逗號(hào)便于用戶識(shí)別,下面通過(guò)本文給大家分享ios中數(shù)字每隔3位用逗號(hào)分隔的實(shí)例代碼,需要的朋友參考下吧
    2017-09-09
  • IOS 指紋識(shí)別兩種方式詳解及實(shí)例

    IOS 指紋識(shí)別兩種方式詳解及實(shí)例

    這篇文章主要介紹了IOS 指紋識(shí)別兩種方式詳解及實(shí)例的相關(guān)資料,需要的朋友可以參考下
    2017-06-06

最新評(píng)論

宝应县| 台南县| 南通市| 电白县| 图片| 勐海县| 宝山区| 合阳县| 四子王旗| 昆明市| 吴桥县| 大余县| 垣曲县| 沭阳县| 无极县| 如皋市| 广灵县| 左云县| 叙永县| 桃江县| 平顶山市| 嵩明县| 如皋市| 阿瓦提县| 玉屏| 安西县| 玛多县| 永善县| 长治市| 城市| 义马市| 辽源市| 庄河市| 宁乡县| 桐柏县| 泾川县| 阿鲁科尔沁旗| 高要市| 花莲县| 信宜市| 文成县|