iOS知识点

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 

上一篇下一篇

猜你喜欢

热点阅读