tableHeaderView中的UILabel没有正确调整大小?

时间:2017-07-15 20:36:55

标签: ios swift uitableview

在我的tableHeaderView我有UILabel根据其文字调整大小。使用一些文本可以使用,而其他文本则不然。

不工作的例子:没有十二

enter image description here

工作示例:从1到15的所有内容

enter image description here

这是我使用的代码:

  override func viewDidLoad() {
    super.viewDidLoad()
    self.tableView.delegate = self
    self.tableView.dataSource = self
    self.testLabel.preferredMaxLayoutWidth = self.tableView.frame.width - 30.0
    self.headerView = self.tableView.tableHeaderView
    self.tableView.tableHeaderView = nil
  }

  override func viewWillLayoutSubviews() {
    super.viewWillLayoutSubviews()
    guard self.tableView.tableHeaderView == nil else { return }
    self.headerView.setNeedsUpdateConstraints()
    self.headerView.updateConstraintsIfNeeded()

    self.headerView.frame = CGRect(x: 0, y: 0, width: tableView.bounds.width, height: CGFloat.greatestFiniteMagnitude)
    var newFrame = self.headerView.frame

    self.headerView.setNeedsLayout()
    self.headerView.layoutIfNeeded()

    let newSize = self.headerView.systemLayoutSizeFitting(UILayoutFittingCompressedSize)
    newFrame.size.height = newSize.height

    self.tableHeaderHeight = newSize.height
    self.headerView.frame = newFrame
    self.tableView.tableHeaderView = self.headerView
  }

0 个答案:

没有答案