如何获取 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 声明的高度约束?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Swift 中使用 SnapKit 使 UIView 具有相等的宽度和高度?

向使用 SnapKit 定位的 UIView 添加阴影

Snapkit 布局问题 - UITextView 超越 UIView

使用 SnapKit 对 UIView 进行约束但啥也不显示

我想使用 SnapKit 将顶部 UIView 放置在 UITableView 之上

Swift SnapKit 如何用相对位置布局 UIView