ken*_*nyc 6 cocoa cocoa-touch uikit appkit autolayout
自动布局使用-符号指示约束应使用默认间距.有没有办法在不必明确设置度量值的情况下设置该间距的优先级?
例如,以下可视格式将在myView其superview 之间创建一个等于默认Cocoa/CocoaTouch值的前导约束.但是这种约束具有优先权required.
@"H:|-[myView]"
以下将创建具有较低优先级的前导约束,但必须指定显式度量值:
@"H:|-(10@750)-[myView]"
我希望能够为前导约束赋予优先级,但不是明确的度量.理由是1)我不想猜测Apple的价值是什么,以及2)如果Apple改变了这个价值,那么将来会证明这一点.
理想情况下,我喜欢以下内容:
@"H:|-(@750)-[myView]" 要么 @"H:|-(-@750)-[myView]"
但这两种语法都不被接受.是否有一个秘密格式字符串可以实现这一目标?
(我不认为iOS和MacOS之间有这样的差异,但如果有,我的目标是MacOS.)
小智 1
您无法在视觉格式约束中设置默认间距的优先级。仅当显式创建约束时才能执行此操作。
let constraint = NSLayoutConstraint(item: myView, attribute: .leadingMargin, relatedBy: .equal, toItem: superview, attribute: .leadingMargin, multiplier: 1, constant: 0)
constraint.priority = 750
Run Code Online (Sandbox Code Playgroud)
您可以通过将属性指定为leadingMargin和trailingMargin来获取默认间距,而不是仅使用leading和trailing。
| 归档时间: |
|
| 查看次数: |
320 次 |
| 最近记录: |