自增高的textView

今天找了点Demo,想弄一个自增高的textView,这种需求很常见,比如qq输入框什么的,一开始感觉要根据字数,来算高度,之后设置高度,后来发现了一个比较简单的方法,贴出来给大家分享一下

废话不多说,直接上代码,基本上如果你也有这种需求,直接复制就行了

// 1.创建一个tv
_tv = [[UITextView alloc] initWithFrame:CGRectMake(100, 100, 100, 30)];
    _tv.backgroundColor = [UIColor greenColor];
    _tv.delegate = self; // 遵循代理
    [self.view addSubview:_tv];

// 2.在代理方法里面计算高度
- (void)textViewDidChange:(UITextView *)textView
{
// OK,就下面这两行代码就可以达到你的需求了
    [textView sizeToFit]; // 适配尺寸,
    [self setWidth:100]; // 高度定死.
}

// 3.设置宽度
- (void)setWidth:(CGFloat)width
{
    CGRect frame = self.tv.frame;
    frame.size.width = width;
    self.tv.frame = frame;
}

那啥,就这么多代码就达到了需求,但是在tableViewController上面有些问题,因为cell改变需要重绘,就导致tv失去第一响应者等问题,还在研究当中...朋友们也可以给点思路...

贴个比较好用的第三方吧
YZInputView
挺好用的,带占位图,自动增高回调

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容