Ios 有没有办法通过代码创建大于或等于约束的关系
我正在研究可扩展表格单元,我的算法如下:Ios 有没有办法通过代码创建大于或等于约束的关系,ios,swift,autolayout,nslayoutconstraint,Ios,Swift,Autolayout,Nslayoutconstraint,我正在研究可扩展表格单元,我的算法如下: 我创建了两个视图 创建第二个视图的高度约束,将其作为IBOutlet拖到我的单元格中 选定单元格后,更改选定单元格的状态 一切都很好,但我希望我的第二个视图调整与内部内容相关的大小 以下是我的限制: 所以,我的问题是: 将非严格值写入self.expandableCellHeightConstraint.constant的最佳方法是什么?实际上,我想写一些东西,比如self.expandableCellHeightConstraint.constan
一切都很好,但我希望我的第二个视图调整与内部内容相关的大小 以下是我的限制: 所以,我的问题是: 将非严格值写入
self.expandableCellHeightConstraint.constant
的最佳方法是什么?实际上,我想写一些东西,比如self.expandableCellHeightConstraint.constant>=120
,但据我所知,这是不可能的。正如建议的那样,您可以在代码中创建高度约束,如下所示:
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)
或者,您可以这样做:
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
我希望这会有帮助 NSLayoutConstraint有一个“relation”属性,可以设置为“greaterThanOrEqual”。是的,但根据documentationOK,它是只读的,那么您必须在创建约束时设置它:
NSLayoutConstraint(…,relatedBy:greaterThanOrEqual…)