快照套件。替换情节提要约束

Posted

技术标签:

【中文标题】快照套件。替换情节提要约束【英文标题】:SnapKit. Replace storyboard constrains 【发布时间】:2016-07-09 21:08:01 【问题描述】:

如果我在代码中创建 UIButton 实例并使用 Snapkit 框架应用约束 - 它按预期工作。但是当我尝试将相同的代码应用于@IBOutlet 按钮(在情节提要中定义)时,什么也没有发生 - 我看到按钮的位置/大小与情节提要上的相同......

示例代码:

    let button = UIButton()
    self.view.addSubview(button)

@IBOutlet weak var button: UIButton!

和约束是

    button.snp_makeConstraints  make in
        make.width.equalTo(150)
        make.height.equalTo(50)
        make.centerX.equalTo(self.view.snp_centerX)
        make.centerY.equalTo(self.view.snp_centerY).offset(-40)
    

我曾尝试在snp_makeConstraints() 方法之前调用button.snp_removeConstraints(),但没有成功。

【问题讨论】:

【参考方案1】:

SnapKit 只删除自己的约束。对于故事板约束,您需要从超级视图中删除视图或使用此 sn-p 清除所有默认约束

view.removeConstraints(view.constraints)

【讨论】:

谢谢,它有效。澄清的小问题 - 可以在 viewDidLoad 中调用它吗? 在 viewDidLoad 中工作应该没有问题,但如果您遇到任何问题,您可以改用 viewDidLayoutSubviews。

以上是关于快照套件。替换情节提要约束的主要内容,如果未能解决你的问题,请参考以下文章

如何删除情节提要或菜单上的约束

在代码中更改大小分类约束的常量,但它会恢复为情节提要值

如何在情节提要中的 UILabel 的右边缘添加前导约束?

为啥带有约束的情节提要对象在运行时无法正确显示?

使用动态高度时 UITableViewCell 的情节提要冲突约束

如何使用情节提要约束将两个 UIPickerView 并排均匀分布?