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

亚历克斯·刘易斯

UIButton在情节提要中设置了自动布局约束。我也有一个UIView我使用UIViewControllerviewDidLoad方法发起我使该视图具有(几乎)与相同的所有属性,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)

谢谢。

罗伯特·古默森

以这种方式复制约束失败,因为:

  • 情节提要中的约束将添加到超级视图中,而不是按钮本身
  • 您尝试复制的约束是引用按钮,而不是新视图

除了复制约束之外,还可以简化约束并创建新约束并引用按钮:

    let someView = UIView()
    someView.translatesAutoresizingMaskIntoConstraints = false
    view.addSubview(someView)

    view.addConstraints([
        NSLayoutConstraint(item: someView, attribute: .Leading, relatedBy: .Equal, toItem: someButton, attribute: .Leading, multiplier: 1, constant: 0),
        NSLayoutConstraint(item: someView, attribute: .Trailing, relatedBy: .Equal, toItem: someButton, attribute: .Trailing, multiplier: 1, constant: 0),
        NSLayoutConstraint(item: someView, attribute: .Top, relatedBy: .Equal, toItem: someButton, attribute: .Top, multiplier: 1, constant: 0),
        NSLayoutConstraint(item: someView, attribute: .Bottom, relatedBy: .Equal, toItem: someButton, attribute: .Bottom, multiplier: 1, constant: 0)
    ])

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将IB中的自动布局约束从一个视图复制到另一个视图?

来自分类Dev

是否可以将约束从一个视图复制到另一个视图?

来自分类Dev

将框架/边界/约束从一个视图复制到另一个视图

来自分类Dev

隐藏属性时,将属性从约束布局中的一个视图复制到另一个视图

来自分类Dev

以编程方式将数据从一个视图快速传递到另一个视图

来自分类Dev

基于在Storyboard中使用自动布局创建的另一个视图以编程方式使用框架创建视图

来自分类Dev

Kendo UI TreeView-如何将内容从一个树形视图复制到另一个树形视图?

来自分类Dev

Android以编程方式将布局视图添加到另一个布局

来自分类Dev

Android以编程方式将布局视图添加到另一个布局

来自分类Dev

在 R 中将绘图布局从一个绘图复制到另一个绘图

来自分类Dev

如何以编程方式将图像从一个文件夹复制到另一个文件夹时提高性能

来自分类Dev

如何在SwiftUI中将值从一个视图自动发布到另一个视图?

来自分类Dev

以务实的方式将信息从一个 pdf 复制到另一个

来自分类Dev

如何以编程方式将文件复制到另一个目录?

来自分类Dev

如何以编程方式将文件复制到另一个目录?

来自分类Dev

自动将推送的文件从一个GitHub存储库复制到另一个

来自分类Dev

以编程方式将一个jar文件复制到另一个jar文件

来自分类Dev

如何在Swift中将数据从一个表视图传递到另一个表视图?

来自分类Dev

将数据从一个视图传递到另一个视图

来自分类Dev

从一个Razor视图重定向到另一个Razor视图

来自分类Dev

无法将变量从一个视图传递到另一个视图

来自分类Dev

在WPF MVVM中从一个视图导航到另一个视图

来自分类Dev

存储过程以将视图从当前数据库复制到另一个

来自分类Dev

存储过程以将视图从当前数据库复制到另一个

来自分类Dev

将视图中的尺寸复制到另一个 Revit API

来自分类Dev

将文档复制到另一个视图并锁定当前文档

来自分类Dev

如何从一个文件复制到另一个?

来自分类Dev

在Django中将字段从一个实例复制到另一个

来自分类Dev

将像素从一个图像复制到另一个

Related 相关文章

  1. 1

    如何将IB中的自动布局约束从一个视图复制到另一个视图?

  2. 2

    是否可以将约束从一个视图复制到另一个视图?

  3. 3

    将框架/边界/约束从一个视图复制到另一个视图

  4. 4

    隐藏属性时,将属性从约束布局中的一个视图复制到另一个视图

  5. 5

    以编程方式将数据从一个视图快速传递到另一个视图

  6. 6

    基于在Storyboard中使用自动布局创建的另一个视图以编程方式使用框架创建视图

  7. 7

    Kendo UI TreeView-如何将内容从一个树形视图复制到另一个树形视图?

  8. 8

    Android以编程方式将布局视图添加到另一个布局

  9. 9

    Android以编程方式将布局视图添加到另一个布局

  10. 10

    在 R 中将绘图布局从一个绘图复制到另一个绘图

  11. 11

    如何以编程方式将图像从一个文件夹复制到另一个文件夹时提高性能

  12. 12

    如何在SwiftUI中将值从一个视图自动发布到另一个视图?

  13. 13

    以务实的方式将信息从一个 pdf 复制到另一个

  14. 14

    如何以编程方式将文件复制到另一个目录?

  15. 15

    如何以编程方式将文件复制到另一个目录?

  16. 16

    自动将推送的文件从一个GitHub存储库复制到另一个

  17. 17

    以编程方式将一个jar文件复制到另一个jar文件

  18. 18

    如何在Swift中将数据从一个表视图传递到另一个表视图?

  19. 19

    将数据从一个视图传递到另一个视图

  20. 20

    从一个Razor视图重定向到另一个Razor视图

  21. 21

    无法将变量从一个视图传递到另一个视图

  22. 22

    在WPF MVVM中从一个视图导航到另一个视图

  23. 23

    存储过程以将视图从当前数据库复制到另一个

  24. 24

    存储过程以将视图从当前数据库复制到另一个

  25. 25

    将视图中的尺寸复制到另一个 Revit API

  26. 26

    将文档复制到另一个视图并锁定当前文档

  27. 27

    如何从一个文件复制到另一个?

  28. 28

    在Django中将字段从一个实例复制到另一个

  29. 29

    将像素从一个图像复制到另一个

热门标签

归档