今天找了點(diǎn)Demo旦委,想弄一個(gè)自增高的textView,這種需求很常見,比如qq輸入框什么的雏亚,一開始感覺要根據(jù)字?jǐn)?shù)缨硝,來算高度,之后設(shè)置高度罢低,后來發(fā)現(xiàn)了一個(gè)比較簡單的方法查辩,貼出來給大家分享一下
廢話不多說,直接上代碼网持,基本上如果你也有這種需求宜岛,直接復(fù)制就行了
// 1.創(chuàng)建一個(gè)tv
_tv = [[UITextView alloc] initWithFrame:CGRectMake(100, 100, 100, 30)];
_tv.backgroundColor = [UIColor greenColor];
_tv.delegate = self; // 遵循代理
[self.view addSubview:_tv];
// 2.在代理方法里面計(jì)算高度
- (void)textViewDidChange:(UITextView *)textView
{
// OK,就下面這兩行代碼就可以達(dá)到你的需求了
[textView sizeToFit]; // 適配尺寸,
[self setWidth:100]; // 高度定死.
}
// 3.設(shè)置寬度
- (void)setWidth:(CGFloat)width
{
CGRect frame = self.tv.frame;
frame.size.width = width;
self.tv.frame = frame;
}
那啥,就這么多代碼就達(dá)到了需求,但是在tableViewController上面有些問題,因?yàn)閏ell改變需要重繪,就導(dǎo)致tv失去第一響應(yīng)者等問題,還在研究當(dāng)中...朋友們也可以給點(diǎn)思路...
貼個(gè)比較好用的第三方吧
YZInputView
挺好用的,帶占位圖,自動(dòng)增高回調(diào)