项目中遇到cell动态高度,原本想着是根据数据源的数据来给cell的高度赋值就行了,可是一直弄不好。。有的没错,但是有的cell上的自视图会超过cell的高度,覆盖下个cell,造成很大的困扰。。没办法,菜鸟啊。。。
不过问题终究还是被解决了。。。
我是用xib拖的cell,但是没用适配。是代码适配的。
给cell一个获取高度的方法,在cell的点h申明中。在点m中实现
这里我的cell是根据cell上加的一个背景View(cellBeijinView)的高度变化而变化的,而这个背景view上有lable和图片,lable上显示服务器传过来的备注信息,字数不定,所以高度也不一定,图片数量也不一定,所以我的背景View高度也是动态的。
/*这里是重要部分*/
这个方法是给cell一个预定的高度,一般的都是先吊用heightForRowAtIndexPath方法在调用cellForRowAtIndexPath方法。但是现在加了上面的给定预先高度的
方法,就可以先调用cellForRowAtIndexPath
再调用heightForRowAtIndexPath方法了,而且最终cell的高度是以heightForRowAtIndexPath方法中给的值为准。
所以我们可以在cellForRowAtIndexPath中弄到Cell上背景view的高度,再把cell的高度放到一个字典中存起来,key就用indexpath来设定。
在cellForRowAtIndexPath方法中,
在heightForRowAtIndexPath
方法中
这样就OK了,注意这里在cellForRowAtIndexPath方法里有一个
这个是让一个cell预先布置试图,和那个给定预先高度的方法同理,总之这样过后,你的适配就可以了。完美。。。
当然本菜鸟有哪些地方说的不对,欢迎指正,不要让我的理解一直歪曲,谢谢大家,希望帮到你们