是否有可能通过cellTitle标签中设置的最大文本宽度调整表格视图宽度?
iOS 8,SWIFT
答案 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)
width
自动布局约束设置为表格视图。outlet
设置为您的代码(按住ctrl + drag,就像查看一样)。如果您有标签的大小(如果标签也有自动布局,那么您将在viewDidLayoutSubviews
处设置)将宽度设置为表格,如下所示:
- (void)viewDidLayoutSubviews {
self.myTableWidthConstraint.constant = self.myLabel.frame.size.width;
[self.myTableView updateConstraints];
[self.myTableView layoutIfNeeded];
}
答案 2 :(得分:0)
您可以在viewDidLoad
:
//what ever you want the estimated row height
self.tableView.estimatedRowHeight = 280
self.tableView.rowHeight = UITableViewAutomaticDimension
注意:它仅适用于IOS 8
答案 3 :(得分:-1)
您应该可以在尺寸检查器中执行此操作。