静态UITableViewCell自动高度在IB中不更新但运行时正常,如何处理?
解决IB中UITableViewCell无法显示动态高度的问题
嘿,刚接触Storyboard和Auto Layout很容易遇到这种「运行时正常、IB里看不到效果」的情况,给你几个纯IB操作的解决方案,完全不用写代码:
正确配置TableView的高度规则
选中你的TableView,在右侧Attributes Inspector里:- 把
Row Height改成Automatic(或者直接输入UITableViewAutomaticDimension) - 设置
Estimated Row Height为一个接近你预期的数值(比如44、80都可以,IB需要这个参考值来计算动态高度)
- 把
检查Cell的约束完整性
确保你的textView和label的约束是「撑满」contentView的:- 顶部、底部、左侧、右侧都要和contentView对应的边缘建立约束
- 如果是textView,记得把它的
Scrolling Enabled属性关掉(在Attributes Inspector里找),不然IB会认为它可以滚动,不会自动计算内容高度
用IB预览功能查看动态效果
点击IB右上角的「预览」按钮(那个眼睛图标),在弹出的预览窗口里,你可以直接看到Cell根据内容自适应高度的效果,还能切换不同设备尺寸验证。刷新IB视图
有时候IB会「卡壳」,点击顶部菜单栏的Editor -> Refresh All Views,或者关闭再重新打开Storyboard,就能看到更新后的Cell高度了。
内容的提问来源于stack exchange,提问作者Jesse
相关产品推荐
相关产品推荐

