如何在swift中设置自定义UITableviewcell的动态高度
Posted
技术标签:
【中文标题】如何在swift中设置自定义UITableviewcell的动态高度【英文标题】:How to set dynamic height of custom UITabelview cell in swit 【发布时间】:2016-09-29 16:56:08 【问题描述】:我有一个 UITableView,其中填充了由 Xib(自动布局)创建的自定义单元格。该单元格由多个标签图像等和根据我们从 api 获得的响应更改大小的大小组成。我一直在努力设置动态高度。我正在使用以下方法。
func createTabelView ()
let nib = UINib(nibName: "DBEventCell", bundle: nil)
self.eventTabelVew.registerNib(nib, forCellReuseIdentifier: Constants.CELL_IDENTIFIER)
self.eventTabelVew.estimatedRowHeight = 200
self.eventTabelVew.rowHeight = UITableViewAutomaticDimension
self.eventTabelVew.separatorStyle = .None //UITableViewCellSeparatorStyle.SingleLine;
self.eventTabelVew.separatorColor = UIColor.clearColor();
self.eventTabelVew.backgroundColor = UIColor.whiteColor();
self.eventTabelVew.setNeedsLayout()
self.eventTabelVew.layoutIfNeeded()
func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat
return UITableViewAutomaticDimension
func tableView(tleView: UITableView, estimatedHeightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat
return UITableViewAutomaticDimension
但这不起作用。请帮忙,因为我最近几天才被打动。 提前致谢
【问题讨论】:
【参考方案1】:我觉得你不需要这个功能
func tableView(tleView: UITableView, estimatedHeightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat
return UITableViewAutomaticDimension
您还应该检查您的单元格自动布局约束并调整 UI 组件的属性以使其随内容收缩或扩展,也请查看本教程
https://www.appcoda.com/self-sizing-cells/
【讨论】:
如果删除了这个函数estimateHeightForRowAtIndexPath 问题还是一样,我也跟着“appcoda.com/self-sizing-cells”的教程但是没用以上是关于如何在swift中设置自定义UITableviewcell的动态高度的主要内容,如果未能解决你的问题,请参考以下文章
如何在 swift 4 中的 UserDefalts 中设置自定义类数组数据
在 Swift 中设置自定义 NavigationBar 的最简单方法是啥?