gpt4 book ai didi

ios - 从 xib 加载并将自动调整大小掩码转换为约束

转载 作者:行者123 更新时间:2023-11-30 11:14:00 25 4
gpt4 key购买 nike

import UIKit

class ViewController: UIViewController {

@IBOutlet weak var vsuper: UIView!
override func viewDidLoad() {
super.viewDidLoad()
let v = view2.getView()

vsuper.backgroundColor = UIColor.black
vsuper.addSubview(v)
}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}

//xib文件

import UIKit

class view2: UIView {

override func awakeFromNib() {
super.awakeFromNib()
}
static func getView()->view2{
let v = Bundle.main.loadNibNamed("view2", owner: nil, options: nil)?.first as! consentview
// v.translatesAutoresizingMaskIntoConstraints = false
return v;
}

}

当我将 xib 加载到 Storyboard中的另一个 View 时,如果 translateautoresizingmaskintoconstraints 设置为 false,则它不会添加到该 View 中,但如果我删除该行,它就会添加到 View 中。

如果我将其设置为 false,它将占用左上角的空间,否则它会添加到 View 内。为什么这样 ?即使我将其添加到 super

最佳答案

您没有设置约束。 translatesAutoresizingMaskIntoConstraints = false 意味着您不希望将 xib 框架转换为约束,因此您将自己设置约束。这就是为什么它没有为您的 super View 上的 xib View 分配任何边界。尝试在 addSubview() 调用后对 super View 进行一些约束。例如,

v.leadingAnchor.constraint(equalTo: vsuper.leadingAnchor, constant: 0).isActive = true
v.trailingAnchor.constraint(equalTo: vsuper.trailingAnchor, constant: 0).isActive = true
v.topAnchor.constraint(equalTo: vsuper.topAnchor, constant: 0).isActive = true
v.bottomAnchor.constraint(equalTo: vsuper.bottomAnchor, constant: 0).isActive = true
vsuper.layoutIfNeeded()

关于ios - 从 xib 加载并将自动调整大小掩码转换为约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51916149/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com