【发布时间】:2020-12-02 21:34:15
【问题描述】:
在展示我的 GameScene 之前,我将 safeAreaLayoutGuide 应用到初始视图屏幕(下面的代码来自 GameViewController)。
如果在任何时候在我打电话之前view.presentScene(scene)我尝试获取视图的框架,我会得到一个空集。
如果我得到了框架,在呈现场景之后,我得到了全屏的矩形,即使视图确实出现在 safeAreaLayoutGuide 中。
如何获得视图的安全调整屏幕坐标? 我应该注意我这样做是为了可以对我的 GameScene 应用适当的约束,因为我只能为 UIView 找到如何做到这一点。
class GameViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
if let view = self.view as! SKView?{
let screenWidthInPoints = UIScreen.main.bounds.width
let screenHeightInPoints = UIScreen.main.bounds.height
let imageView = UIView()
imageView.backgroundColor = .red
view.addSubview(imageView)
imageView.translatesAutoresizingMaskIntoConstraints = false
imageView.leftAnchor.constraint(equalTo: view.safeAreaLayoutGuide.leftAnchor).isActive = true
imageView.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor, constant: 0).isActive = true
imageView.rightAnchor.constraint(equalTo: view.safeAreaLayoutGuide.rightAnchor).isActive = true
imageView.bottomAnchor.constraint(equalTo: view.safeAreaLayoutGuide.bottomAnchor , constant: -0).isActive = true
let scene = GameScene(size: CGSize(width: screenWidthInPoints,
height: screenHeightInPoints))
scene.backgroundColor = .black
scene.scaleMode = .aspectFit
view.presentScene(scene)
var myRect = view.frame
【问题讨论】:
标签: swift uiview uikit safearealayoutguide