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

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

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

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

觀察效果圖

UITextField有以下幾種特點:

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

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

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

接下來我們通過不同的方法來解決問題

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

通過NSAttributeString方法來更改占位文字的屬性
(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:@"手機號" attributes:dict];
self.phoneField.attributedPlaceholder = attr;
} 

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

二.自定義一個UITextField的類

重寫它的drawPlaceholderInRect方法

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

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

三.利用Runtime運行時機制

Runtime是官方的一套C語言庫

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

(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這個C函數(shù),將所有的成員變量打印出來

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

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

通過這個方法可以完成所有的效果,既具有通用性也簡單

最后一個效果是

在獲得焦點時改變占位文字顏色

在失去焦點時再改回去

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

相關(guān)文章

  • iOS動態(tài)驗證碼實現(xiàn)代碼

    iOS動態(tài)驗證碼實現(xiàn)代碼

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

    iOS Xcode升級Xcode15報錯SDK does not contain

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

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

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

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

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

    清除WKWebView cookies的方法

    下面小編就為大家?guī)硪黄宄齏KWebView cookies的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-04-04
  • ios啟動頁強制豎屏(進入App后允許橫屏與豎屏)

    ios啟動頁強制豎屏(進入App后允許橫屏與豎屏)

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

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

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

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

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

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

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

    IOS 指紋識別兩種方式詳解及實例

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

最新評論

龙泉市| 石阡县| 古交市| 平顺县| 自贡市| 高淳县| 浦北县| 香河县| 惠安县| 彝良县| 理塘县| 泽库县| 九龙城区| 东山县| 福安市| 广水市| 河源市| 双峰县| 石狮市| 曲周县| 桃园县| 临夏县| 汶川县| 蓬莱市| 广宗县| 中方县| 无为县| 达尔| 大名县| 南雄市| 宝清县| 互助| 兴仁县| 涿鹿县| 丹凤县| 宝兴县| 宣化县| 台前县| 平泉县| 松阳县| 静安区|