我正在开发可扩展的表格单元格,我的算法如下:
class ExpandableCell: UITableViewCell {
@IBOutlet weak var expandableCellHeightConstraint: NSLayoutConstraint!
@IBOutlet weak var expandableView: UIView!
var isExpanded:Bool = false
{
didSet
{
if !isExpanded {
self.expandableCellHeightConstraint.constant = 0.0
} else {
self.expandableCellHeightConstraint.constant = 120
}
}
}
}
一切都很好,但我希望我的第二个视图调整大小与内部内容相关。
以下是我的约束:
所以,我的问题是:
将非严格值写入self.expandableCellHeightConstraint.constant
的最佳方法是什么?实际上我想写self.expandableCellHeightConstraint.constant >= 120
之类的东西,但据我所知,这是不可能的。
答案 0 :(得分:4)
如Martin R所示,您可以在以下代码中创建高度约束:
let heightConstraint = NSLayoutConstraint(
item: yourExpandableView,
attribute: .height,
relatedBy: .greaterThanOrEqual,
toItem: nil,
attribute: .notAnAttribute,
multiplier: 1.0,
constant: 120
)
或者,你可以这样做:
let heightConstraint = yourExpandableView.heightAnchor.constraint(greaterThanOrEqualToConstant: 120)
然后,只要需要启用/禁用此约束,就可以将其isActive
属性设置为true或false。您可能还希望将此约束作为类的属性,因为一旦属性isActive
设置为false,约束就会变为nil。
我希望它有用!