Я хочу создать UIView как контейнерное представление или даже более программно с помощью snapkit в Xcode 11.1, но кажется, что что-то не так, и я думаю, что Apple изменила UIView в Xcode 11.x (iOS 13.x), потому чтоЯ сделал это очень легко в предыдущих версиях Xcode.
В SceneDelegate.swift (Apple переместила переменную окна из AppDelegate.swift в SceneDelegate.swift)
class SceneDelegate: UIResponder, UIWindowSceneDelegate {
var window: UIWindow?
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
guard let _ = (scene as? UIWindowScene) else { return }
let viewController = ViewController()
if let windowScene = scene as? UIWindowScene {
self.window = UIWindow(windowScene: windowScene)
self.window?.rootViewController = viewController
self.window?.makeKeyAndVisible()
}
}
}
ViewController.swift
class ViewController: UIViewController {
var containerView: UIView = {
let view = UIView(frame: CGRect(x: 0, y: 0, width: 100, height: 100))
view.backgroundColor = .green
view.translatesAutoresizingMaskIntoConstraints = false
return view
}()
override func viewDidLoad() {
super.viewDidLoad()
self.view.backgroundColor = .blue
setUpView()
}
func setUpView() {
self.view.backgroundColor = .blue
self.view.addSubview(containerView)
containerView.snp.makeConstraints { (make) in
make.centerX.equalTo(self.view.snp.centerX)
make.centerY.equalTo(self.view.snp.centerY)
}
}
}
и результат:
![enter image description here](https://i.stack.imgur.com/9Y0nr.png)