所以,我想添加一个约束,强制每个单元格的最大高度小于或等于UITableView
高度的2/3。
我怎样才能做到这一点?
在func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
中添加约束不是一种选择,因为单元格不在UITableView
中,所以它抱怨它们没有共同的超级视图。
基本上,我如何将UITableViewCell
和UITableView
与NSLayoutContraint
相关联?
答案 0 :(得分:2)
嗯,你不能这样做。你可以做的是获取tableview的高度,然后在你的单元格上添加一个高度约束。因此,在接口构建器中为您的单元格添加一个高度约束并将其设置为一个方便的值(只是为了查看表中的内容,它将从代码更新)。然后在代码中添加该约束的引用。然后更新约束的值:
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("cellidentifier", forIndexPath: indexPath) as! YourCustomCell
cell.heightConstraint.constant = 2.0 * tableview.frame.size.height / 3.0
}
如果您使用的是动态大小的单元格。否则你可以覆盖:func tableView(_ tableView: UITableView,
heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat
并返回你想要的大小。