0
votes

I'm trying to create something using swift playgrounds and am having some difficulty with the auto layout. Here is my code

import PlaygroundSupport
import UIKit

class ViewController: UIViewController {
    var gameVC = GameView()
    override func viewDidLoad() {
        super.viewDidLoad()
        gameVC.translatesAutoresizingMaskIntoConstraints = false
        view.addSubview(gameVC)
        gameVC.topAnchor.constraint(equalTo: view.topAnchor).isActive = true
        gameVC.bottomAnchor.constraint(equalTo: view.bottomAnchor).isActive = true
        gameVC.widthAnchor.constraint(equalToConstraint: view.frame.width).isActive = true
        gameVC.heightAnchor.constraint(equalToConstraint: view.frame.height).isActive = true
    }
}

I get errors on the line

gameVC.widthAnchor.constraint(equalToConstraint: view.frame.width).isActive = true

saying

Expression type '@lvalue CGRect' is ambiguous without more context

Thanks in advance!

1

1 Answers

3
votes

view.frame.width is not a constraint. You probably want

gameVC.widthAnchor.constraint(equalTo: view.widthAnchor).isActive = true
gameVC.heightAnchor.constraint(equalTo: view.heightAnchor).isActive = true

or maybe:

gameVC.widthAnchor.constraint(equalToConstant: view.frame.width).isActive = true
gameVC.heightAnchor.constraint(equalToConstant: view.frame.height).isActive = true

I actually think there is no such method called constraint(equalToConstraint:).