如何将约束添加到相对于父视图边距的按钮,使其显示为距上边距 30 和距右边距 30

Posted

技术标签:

【中文标题】如何将约束添加到相对于父视图边距的按钮,使其显示为距上边距 30 和距右边距 30【英文标题】:How to AddConstraint to a button relative to parent view's margin so that it appears 30 from top margin and 30 from right margin 【发布时间】:2017-07-03 20:12:15 【问题描述】:

这是我正在尝试的代码:

    @IBOutlet weak var btnInfo: UIButton!

override func viewWillAppear(_ animated: Bool) 
    self.view.addConstraint(NSLayoutConstraint(item: self.view,
                                             attribute: .topMargin,
                                             relatedBy: .equal,
                                             toItem: btnInfo,
                                             attribute: .notAnAttribute,
                                             multiplier: 1,
                                             constant: 20))
    self.view.addConstraint(NSLayoutConstraint(item: self.view,
                                             attribute: .rightMargin,
                                             relatedBy: .equal,
                                             toItem: btnInfo,
                                             attribute: .notAnAttribute,
                                             multiplier: 1,
                                             constant: 30))

尝试添加.topMargin.rightMargin 约束以使btnInfo 出现距顶部30 点和距右边距30 点。请帮忙。

【问题讨论】:

使用锚点!它会让你的生活更轻松。见here 【参考方案1】:

如果界面构建器是一个选项,界面构建器非常适合这种类型的功能。选择要添加边距的对象,并在顶部和右侧设置恒定边距。

这是一个屏幕截图。

【讨论】:

非常感谢。您的回答帮助了我,解决了我的问题。 总是乐于提供帮助!

以上是关于如何将约束添加到相对于父视图边距的按钮,使其显示为距上边距 30 和距右边距 30的主要内容,如果未能解决你的问题,请参考以下文章

iOS Autolayout:如何显示/隐藏包含边距的视图?

以编程方式创建绑定到视图控制器边距的约束

如何将边缘设置为零?

如何定位具有对所有设备看起来相同的边距的视图?

ConstraintLayout - 匹配另一个视图的约束,但添加边距以使其更大

为啥我的设置切断了我对边距的限制?