轉(zhuǎn)自:http://m.2cto.com/kf/201608/534005.html
流程:
1.創(chuàng)建textView
2.給textView添加一個UILabel子控件,作為placeholder
3.在文本改變的代理方法里面顯示/隱藏UILabel
特點:
該方法同樣也可以實現(xiàn)類似于placeholder的功能。相比較方法一,方法二可以實現(xiàn)動態(tài)監(jiān)聽文本的改變,并非彈出鍵盤就立即清除placeholder,只有當(dāng)用戶開始輸入文本的時候。placeholder才會消失。同樣,當(dāng)用戶清空文本的時候,placeholder又會重新顯示出來。
代理:<UITextViewDelegate>
pragma mark - 繪制 發(fā)布 界面
-
(void)createPublishView{
UITextView * textView = [[UITextView alloc]init];
self.textView = textView;
[self.backgroundView addSubview:_textView];[_textView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.top.mas_equalTo(0); make.height.mas_equalTo(74);
}];
_textView.backgroundColor = [UIColor redColor];
_textView.delegate = self;
[self setupPlaceHolder];
}
// 給textView添加一個UILabel子控件
-
(void)setupPlaceHolder {
UILabel *placeHolder = [[UILabel alloc] init];
self.placeHolder = placeHolder;
[self.textView addSubview:placeHolder];[_placeHolder mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(15); make.top.mas_equalTo(12); make.height.mas_equalTo(20);
}];
placeHolder.backgroundColor = [UIColor yellowColor];
placeHolder.text = @"說點什么吧...";
placeHolder.textColor = [UIColor lightGrayColor];
placeHolder.numberOfLines = 0;
placeHolder.contentMode = UIViewContentModeTop;
placeHolder.font = [UIFont jk_systemFontOfPxSize:14];
}
pragma mark - TextView 代理 & 數(shù)據(jù)源
-
(void)textViewDidChange:(UITextView *)textView {
if (!textView.text.length) {
self.placeHolder.alpha = 1;
} else {
self.placeHolder.alpha = 0;
}
}
//關(guān)閉鍵盤
-(void) dismissKeyBoard{[self.textView resignFirstResponder];
}