38440


`viewWillTransition(to size: with coordinator:)`メソッドのiPhoneX対応を試みています。
回転後のsefeAreaInsetsの値の取得をしたいのですが、方法がわかりません。宜しくお願いします。

[code]

    override func viewWillTransition(to size: CGSize,
            with coordinator: UIViewControllerTransitionCoordinator) {
    
        super.viewWillTransition(to: size, with: coordinator)
    
        if #available(iOS 11.0, *) {
            if let window = UIApplication.shared.keyWindow { 
                let insets = window.safeAreaInsets
                contentFrame = CGRect(x:insets.left, y:insets.top,
                width:size.width - insets.left - insets.right,
                height:size.height - insets.top - insets.bottom)
            }
        } else {
            contentFrame = CGRect(x:0,y:0,width:size.width, height:size.height)
        }
        self.updateViews()
    }
    
[/code]


CC BY-SA 3.0
2017-10-04T01:04:16.733
38398
2017-10-05T00:37:24.357
2017-10-04T09:01:48.677
19110
19591
question
swift ios iphone-x
viewWillTransitionToSize の中で safeAreaInsets を取得する方法


下記のように、`UIViewControllerTransitionCoordinator.animate(alongsideTransition:completion:)`のクロージャの中で`sefeAreaInsets`を取得します。その時の値は回転した後の値になります。

[code]

    override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
        super.viewWillTransition(to: size, with: coordinator)
    
        coordinator.animate(alongsideTransition: { (context) in
            ...
    
            let insets = ...safeAreaInsets
    
            ...
        }, completion: nil)
    }
    
[/code]


CC BY-SA 3.0
2017-10-05T00:37:24.357
38440
2017-10-05T00:37:24.357
5519
38398
answer