如何调整UITableView宽度以适应其内容?

时间:2015-05-06 08:35:55

标签: ios iphone uitableview swift

是否有可能通过cellTitle标签中设置的最大文本宽度调整表格视图宽度?

iOS 8,SWIFT

4 个答案:

答案 0 :(得分:2)

public override func viewDidLayoutSubviews() {
    super.viewDidLayoutSubviews()

    // Set the popover tableview width to be max compressed size (assumes all cells visible)
    let maxWidth = tableView.visibleCells.reduce(0.0) { (currentMax, cell) -> CGFloat in
        return max(currentMax, cell.contentView.systemLayoutSizeFittingSize(UILayoutFittingCompressedSize).width)
    }

    var contentSize = tableView.contentSize
    contentSize.width = maxWidth
    tableView.contentSize = contentSize
    tableView.bounds.size = contentSize
}

答案 1 :(得分:1)

  1. width自动布局约束设置为表格视图。
  2. 将约束中的outlet设置为您的代码(按住ctrl + drag,就像查看一样)。
  3. 如果您有标签的大小(如果标签也有自动布局,那么您将在viewDidLayoutSubviews处设置)将宽度设置为表格,如下所示:

    - (void)viewDidLayoutSubviews {
        self.myTableWidthConstraint.constant = self.myLabel.frame.size.width;  
        [self.myTableView updateConstraints];  
        [self.myTableView layoutIfNeeded];
    }
    

答案 2 :(得分:0)

您可以在viewDidLoad

中写下2行来实现
   //what ever you want the estimated row height
    self.tableView.estimatedRowHeight = 280
    self.tableView.rowHeight = UITableViewAutomaticDimension

注意:它仅适用于IOS 8

答案 3 :(得分:-1)

您应该可以在尺寸检查器中执行此操作。

相关问题