首先建立cell,把控件放到相应位置并通过autolayout拉取相应的约束。
大概是这样,具体的拉取就不细写了,最主要的是,最下面的控件底部需要跟cell的底部有一个约束,让cell来自适应高度。
第二,在table的代理vc,申明一个cell,来给计算高度的方法计算高度
第三,初始化这个cell
需要注意的是,建议使用这种注册的方法来实现cell的复用,这样在此只需要初始化一次cell即可。
第四,在计算cell高度的代理中,实现如下方法
其中+1是因为在cell中算出来的和实际是差1的。
这样,即可实现cell的自适应高度问题。另外如果是在一个scroll中嵌套进一个table通常我们需要将scroll的content size设置成table的高度+其他高度的大小,直接用table.bounds.size.height来获取高度即可,例如
比起以前旧版的使用代码计算高度,方便了很多。当然ios 8还有更简单的方法,不过考虑到近期内应该还是要适配Ios 7所以那种方法就不做介绍了,而且那种方法可能出现一些小BUG,会导致图层跳跃的出现,希望苹果进一步解决吧。