项目需求是tableView不需要上下滚动,又要能展示全部的cell,所以需要动态设置整个tableView的真实高度。又因为table中的cell也是动态高度的,所以整个table的高度只有通过contentsize.height动态获得。但是发现每次reloadData之后,contentsize.height的值都是cell的预估高度乘以总行数,而不是真实高度!!网上搜到方法很简单解决:
在使用UITableView 、UICollectionView ,调用reloadData方法之后,并不立即更新其contentSize。原因如下:http://jacksonriver.com/news/ios-adventures-uitableview-animation-callbacks-key-value-observing
若想使其立即更新contentSize,可以显示地调用 layoutSubviews 或 layoutIfNeeded。
文章中
jacksonriver.com网站链接打不开了,所以还没研究不立即更新contentSize的原因。先记录备忘一下。
除了这个方法,这篇文章提到还有终极解决方案,用KVO解决。
参考文章: