Swift:以编程方式将自动布局约束从一个视图复制到另一个视图

Swift:以编程方式将自动布局约束从一个视图复制到另一个视图,第1张

概述我有一个UIButton,我在故事板中设置了自动布局约束.我也有一个UIView,我在UIViewController的viewDidLoad方法中启动.我使这个视图(几乎)具有与UIButton相同的所有属性,但是当它在模拟器中运行它时它不会“粘住”到按钮上.这就是我所拥有的: class ViewController: UIViewController { @IBOutlet wea 我有一个UIbutton,我在故事板中设置了自动布局约束.我也有一个UIVIEw,我在UIVIEwController的vIEwDIDLoad方法中启动.我使这个视图(几乎)具有与UIbutton相同的所有属性,但是当它在模拟器中运行它时它不会“粘住”到按钮上.这就是我所拥有的:

class VIEwController: UIVIEwController {    @IBOutlet weak var somebutton: UIbutton!    func vIEwDIDLoad() {        super.vIEwDIDLoad()        let someVIEw = UIVIEw()        someVIEw.backgroundcolor = UIcolor.greencolor()        someVIEw.frame = somebutton.bounds        someVIEw.frame.origin = somebutton.frame.origin        someVIEw.autoresizingMask = somebutton.autoresizingMask        someVIEw.autoresizesSubvIEws = true        someVIEw.layer.cornerRadius = somebutton.layer.cornerRadius        someVIEw.clipsToBounds = true        someVIEw.userInteractionEnabled = false        vIEw.insertSubvIEw(someVIEw,belowSubvIEw: somebutton)    }}

我想我错过了someVIEw.auto布局约束?

编辑:我认为访问UIbutton的约束会起作用,但它们似乎是一个空数组.故事板的约束是隐藏的吗?

someVIEw.addConstraints(somebutton.constraints)

谢谢.

解决方法 复制那种方式的约束失败,因为:

>故事板中的约束被添加到supervIEw而不是按钮本身
>您尝试复制的约束是引用按钮而不是新视图

而不是复制约束,保持简单并创建新的约束并引用按钮:

let someVIEw = UIVIEw()    someVIEw.translatesautoresizingMaskIntoConstraints = false    vIEw.addSubvIEw(someVIEw)    vIEw.addConstraints([        NSLayoutConstraint(item: someVIEw,attribute: .Leading,relatedBy: .Equal,toItem: somebutton,multiplIEr: 1,constant: 0),NSLayoutConstraint(item: someVIEw,attribute: .Trailing,attribute: .top,attribute: .Bottom,constant: 0)    ])
总结

以上是内存溢出为你收集整理的Swift:以编程方式将自动布局约束从一个视图复制到另一个视图全部内容,希望文章能够帮你解决Swift:以编程方式将自动布局约束从一个视图复制到另一个视图所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1006314.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存