【问题标题】:Set Dynamic height of a tableview cell设置表格视图单元格的动态高度
【发布时间】:2021-09-22 11:27:18
【问题描述】:

我在表格视图单元格下有一个集合视图。我在集合视图中显示所有标签值。现在我想让表格视图的高度是动态的,以便我可以显示所有数据。用户不需要滚动集合视图。 我在我的项目中使用自动布局。目前,我在 tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) 方法中返回“UITableView.automaticDimension”并使集合视图滚动属性为false。请帮帮我。

【问题讨论】:

    标签: swift tableview


    【解决方案1】:

    要使UITableViews 高度= 到tableview 的内容,您可以使用table.contentSize.height 属性。请参阅以下内容,

    1. 由于您使用的是自动布局,请为您的 tableview 高度约束创建一个 @IBOutlet
    @IBOutlet var tableHeightAnchor: NSLayoutConstraint!
    
    1. 更新表格时,将内容高度设置为tableHeightAnchor.constant 的新值
    
    override func viewWillLayoutSubviews() {
        super.updateViewConstraints()
        self.tableHeightAnchor!.constant = tableView.contentSize.height // Setting new height
    }
    .
    .
    .
    tableview.reloadTable()        // If you are reloading your tableview 
    self.viewWillLayoutSubviews()  // This is required
    
    1. 接下来,您可以根据 tableview 的高度来设置单元格的高度。
    tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) {
        let height = tableview.bounds.height
        return height/items.count
    }
    

    【讨论】:

    • 实际上,我在该表格视图中有多个单元格,并且集合视图位于第 0 节索引中,因此我认为此答案不适用于这种情况
    • 您可能需要更正您的问题,因为它有点误导。所以你想让collectionview有一个动态的高度?
    • 是的,我希望collectionview具有动态高度
    猜你喜欢
    • 2018-06-15
    • 1970-01-01
    • 2015-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多