这是 iOS 14 UISplitViewController 错误吗?
Is this an iOS 14 UISplitViewController bug?
在我的应用中,我想要一个三列 UISplitViewController
。我是这样创建的:
let svc = UISplitViewController(style: .tripleColumn)
svc.preferredDisplayMode = .twoOverSecondary
svc.setViewController(TestViewController(), for: .primary)
svc.setViewController(TestViewController(), for: .supplementary)
svc.setViewController(TestViewController(), for: .secondary)
svc.primaryBackgroundStyle = .sidebar
我要介绍的 ViewController 非常简单 viewController。除了显示居中的红色方块外,它什么都不做。
class TestViewController: UIViewController {
private var redView = UIView()
override func viewDidLoad() {
super.viewDidLoad()
redView.backgroundColor = .red
redView.translatesAutoresizingMaskIntoConstraints = false
self.view.addSubview(redView)
redView.widthAnchor.constraint(equalToConstant: 30).isActive = true
redView.heightAnchor.constraint(equalToConstant: 30).isActive = true
redView.centerXAnchor.constraint(equalTo: self.view.centerXAnchor).isActive = true
redView.centerYAnchor.constraint(equalTo: self.view.centerYAnchor).isActive = true
}
}
现在,当我 运行 这段代码时,我得到以下结果。
如您所见,3 个方块中有 2 个偏离中心。任何人都知道,我在这里做错了什么?或者这是一个已知错误?
- 设置居中时应使用“安全区域”而不是“self.view”。
- 此处的详细视图具有推开效果。你只需要点击它,主视图控制器就会隐藏起来,如下所示。
在我的应用中,我想要一个三列 UISplitViewController
。我是这样创建的:
let svc = UISplitViewController(style: .tripleColumn)
svc.preferredDisplayMode = .twoOverSecondary
svc.setViewController(TestViewController(), for: .primary)
svc.setViewController(TestViewController(), for: .supplementary)
svc.setViewController(TestViewController(), for: .secondary)
svc.primaryBackgroundStyle = .sidebar
我要介绍的 ViewController 非常简单 viewController。除了显示居中的红色方块外,它什么都不做。
class TestViewController: UIViewController {
private var redView = UIView()
override func viewDidLoad() {
super.viewDidLoad()
redView.backgroundColor = .red
redView.translatesAutoresizingMaskIntoConstraints = false
self.view.addSubview(redView)
redView.widthAnchor.constraint(equalToConstant: 30).isActive = true
redView.heightAnchor.constraint(equalToConstant: 30).isActive = true
redView.centerXAnchor.constraint(equalTo: self.view.centerXAnchor).isActive = true
redView.centerYAnchor.constraint(equalTo: self.view.centerYAnchor).isActive = true
}
}
现在,当我 运行 这段代码时,我得到以下结果。
如您所见,3 个方块中有 2 个偏离中心。任何人都知道,我在这里做错了什么?或者这是一个已知错误?
- 设置居中时应使用“安全区域”而不是“self.view”。
- 此处的详细视图具有推开效果。你只需要点击它,主视图控制器就会隐藏起来,如下所示。