如何获取 snapkit 为 UIView 声明的高度约束?

Posted

技术标签:

【中文标题】如何获取 snapkit 为 UIView 声明的高度约束?【英文标题】:How to get the height constraint declared by snapkit for UIView? 【发布时间】:2016-08-09 03:24:23 【问题描述】:

例如,我通过 snapkit 为 UIView 声明了一些约束:

timeProgress.snp_makeConstraints  (make) in
  make.left.equalTo(startTime.snp_right).offset(15)
  make.right.equalTo(endTime.snp_left).offset(-15)
  make.height.equalTo(5)
  make.centerY.equalTo(startTime)

如何获得 timeProgress 的高度限制?

【问题讨论】:

【参考方案1】:

你可以持有对高度约束的引用:

var timeHeightConstraint: Constraint

timeProgress.snp_makeConstraints  (make) in
    make.left.equalTo(startTime.snp_right).offset(15)
    make.right.equalTo(endTime.snp_left).offset(-15)
    self.timeHeightConstraint = make.height.equalTo(5).constraint
    make.centerY.equalTo(startTime)

【讨论】:

【参考方案2】:

您需要保持对约束的全局引用。

let timeProgressHeightConstant = 5.0

timeProgress.snp_makeConstraints  (make) in
    make.left.equalTo(startTime.snp_right).offset(15)
    make.right.equalTo(endTime.snp_left).offset(-15)
    make.height.equalTo(timeProgressHeightConstant)
    make.centerY.equalTo(startTime)

因此,您现在可以访问self.timeProgressHeightConstant

【讨论】:

谢谢!但我也想知道如何获得它的宽度限制? @tongxing 在这种情况下没有获取宽度约束的捷径。您需要自己手动计算。

以上是关于如何获取 snapkit 为 UIView 声明的高度约束?的主要内容,如果未能解决你的问题,请参考以下文章