swift - 带有 VFL 约束的场景 Dock 视图未显示
问题描述
我有一个视图控制器,它有一个放置在场景 Dock 中的 UIView(名为 pickerView)。我使用 Scene Dock 的原因是这个 UIView 将包含许多子视图,我不想弄乱情节提要。我正在使用 VFL 来调整此 pickerView 的大小,使其成为设备的全屏。
问题是,当我按下 openPickerButtonPressed 时,黄色的pickerView 永远不会出现。我在这里错过了什么吗?VFL 约束设置是否正确?
override func viewDidLoad() {
super.viewDidLoad()
self.pickerView.translatesAutoresizingMaskIntoConstraints = false
}
@IBAction func openPickerButtonPressed(_ sender: UIButton) {
guard pickerView.superview == nil else {
return
}
self.view.addSubview(pickerView)
let viewsDictionary: [String: UIView] = ["pickerView": pickerView]
view.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "H:|-0-[pickerView]-0-|", options: [], metrics: nil, views: viewsDictionary))
view.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "V:[pickerView(0)]", options: [], metrics: nil, views: viewsDictionary)) // HEIGHT
view.addConstraint(NSLayoutConstraint(item: pickerView, attribute: .centerY, relatedBy: NSLayoutConstraint.Relation(rawValue: 0)!, toItem: view, attribute: .centerY, multiplier: 1, constant: 0))
}
当按下 openPickerButtonPressed 按钮时,如何让 pickerView UIView 打开?
解决方案
推荐阅读
- vue.js - How do you keep your deployed Tailwind code up to date when the Figma design files are always changing?
- r - R 将数据帧绑定到前一个数据帧(基于条件)
- css - remove after pseudo element in part of a text
- ansible - ansible json_query 合并 2 个结果
- c++ - 为什么'std :: function
' 在没有任何警告的情况下返回 'bool' 的 lambda? - javascript - 如何从日期格式中获取日期
- android - 颤振在 sliver 列表上每 x 次添加一个项目
- sqlite - 在 SQLite 房间中捕获批量插入的返回值
- node.js - 数组到 TS 中的类型化对象
- node.js - 节点路径问题 old-`/usr/bin/node` new-`/usr/local/bin/node`。无法安装任何软件包。如何更改路径(ubuntu 用户)