NSLayoutConstraint 将 centerX 约束到 superview 的另一侧
Posted
技术标签:
【中文标题】NSLayoutConstraint 将 centerX 约束到 superview 的另一侧【英文标题】:NSLayoutConstraint constrain centreX to another side of superview 【发布时间】:2014-08-30 03:54:34 【问题描述】:我目前可以将视图的 centerX 限制在其父视图的左侧,如下所示:
NSLayoutConstraint *con = [NSLayoutConstraint constraintWithItem:view
attribute:NSLayoutAttributeCentreX
relatedBy:NSLayoutRelationEqual
toItem:view.superview
attribute:NSLayoutAttributeLeft
multiplier:1
constant:20];
但这不允许我设置约束的优先级,因此非常严格。
我的问题是:你如何使用视觉格式语言实现类似的东西(这样优先级也可以设置)?
另请注意:我希望仅通过单个约束来实现这一点,以便以后使用。
【问题讨论】:
【参考方案1】:刚刚回忆起调用[con setPriority:priority]
的问题仅在约束已安装在视图中时发生。
出于我的目的,使用 constraintWithItem:Attribute:RelatedBy... 然后调用 con.priority=priority 可以正常工作。
尽管如此,了解如何使用 VFL 实现类似的功能仍然很有用(如果可能的话)
【讨论】:
以上是关于NSLayoutConstraint 将 centerX 约束到 superview 的另一侧的主要内容,如果未能解决你的问题,请参考以下文章
NSLayoutConstraint 将 centerX 约束到 superview 的另一侧
NSLayoutConstraint - 无法将子视图框架设置为父视图边界
NSLayoutConstraint 将视图固定到父视图的底部边缘
使用 NSLayoutConstraint 将大型 UIView 居中