【发布时间】:2015-06-25 17:38:26
【问题描述】:
我有一个带有 uitableview 的视图控制器来显示一些 cmets。我使用故事板和自动布局。
单元格的高度取决于内容。
当我有很多单元格时,我的表格视图被切断,并且没有完全显示。但是细胞越少也是正确的。
在 viewDidLoad 中:
self.commentsTableView.estimatedRowHeight = 93.0
self.commentsTableView.rowHeight = UITableViewAutomaticDimension
在 viewDidAppear 中,我尝试了 2 种方法,首先是高度限制:
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
self.commentsTableView.removeConstraint(self.tableViewHeightConstraint)
self.tableViewHeightConstraint = NSLayoutConstraint(item: self.commentsTableView, attribute: NSLayoutAttribute.Height, relatedBy: NSLayoutRelation.Equal, toItem: nil, attribute: NSLayoutAttribute.NotAnAttribute, multiplier: 1, constant: self.commentsTableView.contentSize.height)
self.commentsTableView.addConstraint(self.tableViewHeightConstraint)
self.commentsTableView.setNeedsUpdateConstraints()
self.commentsTableView.updateConstraintsIfNeeded()
}
我也尝试了框架的高度(没有高度限制):
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
var frame:CGRect = self.commentsTableView.frame
frame.size.height = commentsTableView.contentSize.height
self.commentsTableView.frame = frame
}
这两种方法的结果完全相同。 单元格过多时,tableview显示不全。
编辑
截图。蓝色是我的滚动视图。
【问题讨论】:
-
不能滚动tableview?你禁用滚动了吗?
-
我可以滚动我的 tableview,滚动被禁用,因为我的 tableview 在滚动视图中。我检查确定,我的scrollview的高度没问题,问题出在tableview上。
-
要么在表格视图中启用滚动,要么需要确保滚动视图的内容大小足够大 - 听起来好像不是。
-
我在帖子中添加了截图。我增加了滚动视图的高度(蓝色)。
-
需要确保tableview的frame设置正确,才能完全占据scroll view内容大小
标签: ios uitableview swift autolayout height