dan*_*nd1 1 ios autolayout nslayoutconstraint swift
我正在处理可扩展表格单元格,我的算法如下:
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
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
一切都很好,但我想重新调整与内部内容相关的第二个视图的大小。
这是我的约束:
所以,我的问题是:
将非严格值写入的最佳方法是什么self.expandableCellHeightConstraint.constant?实际上,我曾想过编写类似的东西self.expandableCellHeightConstraint.constant >= 120,但据我所知这是不可能的。
正如Martin R建议的那样,您可以在代码中创建高度约束,如下所示:
let heightConstraint = NSLayoutConstraint(
item: yourExpandableView,
attribute: .height,
relatedBy: .greaterThanOrEqual,
toItem: nil,
attribute: .notAnAttribute,
multiplier: 1.0,
constant: 120
)
Run Code Online (Sandbox Code Playgroud)
或者,您可以这样做:
let heightConstraint = yourExpandableView.heightAnchor.constraint(greaterThanOrEqualToConstant: 120)
Run Code Online (Sandbox Code Playgroud)
然后,isActive只要需要启用/禁用此约束,就可以将其属性设置为true或false。您可能还希望将此约束保留为类的属性,因为一旦将约束的属性isActive设置为false ,约束就会变为nil 。
希望对您有所帮助!
| 归档时间: |
|
| 查看次数: |
5378 次 |
| 最近记录: |