具有最小高度的UITableViewCell基于百分比的高度

时间:2015-06-24 01:17:25

标签: ios xcode swift uitableview xcode6

我有一个自定义的tableview单元格,让我自动布局管理它的高度。

tableView.estimatedRowHeight = 44 
tableView.rowHeight = UITableViewAutomaticDimension

在TableViewCell中我有一个子视图:

contentView.addSubview(subView)

我希望TableViewCell要么是屏幕高度的40%,要么是250pts。

我通过这样做得到了它:

self.contentView.autoSetDimension(.Height, toSize: round(UIScreen.mainScreen().bounds.height * 0.40), relation: .GreaterThanOrEqual)
self.contentView.autoPinEdgeToSuperviewEdge(.Leading)
self.contentView.autoPinEdgeToSuperviewEdge(.Trailing)
self.subView.autoSetDimension(.Height, toSize: 250, relation: .GreaterThanOrEqual)

subView.autoPinEdgeToSuperviewEdge(.Top)
subView.autoPinEdgeToSuperviewEdge(.Leading)
subView.autoPinEdgeToSuperviewEdge(.Trailing)
subView.autoPinEdgeToSuperviewEdge(.Bottom)

这看起来很草率。这是最好的方法吗?

1 个答案:

答案 0 :(得分:1)

您不需要向contentView添加约束,以便将其大小自动调整为subView,请尝试以下操作:

subView.autoSetDimension(.Height, toSize: round(UIScreen.mainScreen().bounds.height * 0.40), relation: .GreaterThanOrEqual)
subView.autoSetDimension(.Height, toSize: 250, relation: .GreaterThanOrEqual)

subView.autoPinEdgesToSuperviewEdgesWithInsets(UIEdgeInsetsZero)