iOS tableviewcell上放textview自适应高
2018-11-15 本文已影响0人
山野朗朗
肯定很多童鞋在开发中遇到cell上放textview的各种问题,各种计算和更新,显得代码很臃肿,相信看了这篇文章,你会很轻松的哈。
主要解决问题:1、cell的高度自动更新 2、键盘遮挡textView的时候,tableview自动上移(万能的)
1、用的xib,autolayout固定约束
2、设置 textview的scrollEnable 属性,设置为NO (如果为YES的时候,输入内容高度大于cell的高度时候,会出现滚动条,并且文字往上,不会改变cell的高度),scrollEnable在XIB中设置如下
也可以代码设置为NO .
3、设置textview的代理,和计算textview输入文字的高度 (在cell中计算)
cell.h中
cell.m中
3、至此,cell中设置完毕
4、在tableview中更新高度
到这里已经能实现tableviewcell的高度随着输入内容的增高而增高,但有的时候键盘的高度会覆盖textview,因此有很多的方法计算键盘的高度,更改tablview的frame或者inset,,这里利用tableviewcontroller的特性直接三行代码可以解决
至此完美解决!!!!
Tip:
我在开发的过程中,我在更新tableview的高度的时候用的
[self.tableView beginUpdates]
[self.tableView endUpdates];
这个方法是ios7出来的,在iOS11之前都能用,但是在解决键盘的弹出的问题时候,可能会出现输入文字的时候,tableivew会不断的来回上下跳动,遇见的自然明白。所以我在这里用的ios 11 之后的方法。
请大家多多支持!哈哈
稍后我会在github上上传这份demo