【问题标题】:Automatic height for tableview表格视图的自动高度
【发布时间】:2019-12-19 01:47:29
【问题描述】:

我请求你帮助创建一个具有自动高度的表格视图

我的目标是创建一个包含一些数据(如字符串)的 tableView。 但就我而言,我可以有 4、7 或 22 个字符串。所以,我的目标是列出所有字符串,而不是在这个 TableView 内滚动,而是在所有主滚动视图中滚动

我知道如何获得自动行单元格高度,但似乎我必须为我的 tableview 设置高度或底部约束,这不是我的目标。

如果您了解 CCS,目标是获得像“height: auto;”这样的渲染。就是这样。

希望能为我读到一些好消息。 谢谢

【问题讨论】:

    标签: swift uitableview autolayout tableview


    【解决方案1】:

    在情节提要中设置初始高度约束并将出口连接到它。获取 tableviews 数据并调用 self.tableView.reloadData() 后尝试:

    self.tableViewHeightConstraint.constant = self.tableView.contentSize.height

    【讨论】:

      【解决方案2】:

      将tableview包裹在UIScrollView内,然后设置tableview的高度并取tableview高度的出口,

      @IBOutlet weak var heightOfTable: NSLayoutConstraint!
      

      之后我们需要观察tableview每次变化的高度,为此在你的UIViewController中添加以下方法

      override func viewWillAppear(_ animated: Bool) {
          super.viewWillAppear(animated)
          tableView.addObserver(self, forKeyPath: "contentSize", options: .new, context: nil)
      }
      
      override func viewWillDisappear(_ animated: Bool) {
          super.viewWillDisappear(animated)
          tableView.removeObserver(self, forKeyPath: "contentSize")
      }
      
      override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
          if keyPath == "contentSize" {
              heightOfTable.constant = min(tableView.contentSize.height, UIScreen.main.bounds.height * 0.6)
          }
      }
      

      【讨论】:

      • 感谢您的回答。我有内容的自动调整大小,但我的滚动视图不起作用。我在 tableView 下放置了一个固定高度的 uiview,并且我的表格视图已调整大小(更小)。
      【解决方案3】:

      你必须在 heightForRow 事件中使用 UITableView.automaticDimension。您还必须在 viewDidLoad 中设置estimatedRowHeight。

      在此之前,您必须设计您的表格视图单元格,而不对标签进行任何高度限制。 (我认为你正在使用标签。),你也必须给标签 lineCount 0。

      当您完成所有这些时,就必须完成。如果你愿意,你可以分享你的代码,然后我可以帮助你。

      【讨论】:

        猜你喜欢
        • 2015-01-10
        • 2013-05-16
        • 1970-01-01
        • 1970-01-01
        • 2014-10-01
        • 2017-07-19
        • 2020-11-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多