How to get height of topLayoutGuide?

后端 未结 3 552
太阳男子
太阳男子 2021-02-01 15:23
 moviePlayer = MPMoviePlayerController(contentURL: url)
 moviePlayer.view.frame = CGRect(x: 0, y:{layoutguide.height}, width:
 self.view.frame.width, height: 300)
 self.         


        
相关标签:
3条回答
  • 2021-02-01 15:47

    You can get the topLayoutGuide value as its length property:

    // Inside your viewController
    self.topLayoutGuide.length
    

    Since it is a single value (i.e.: it does not have a height and width) they just called it length. Same holds for bottomLayoutGuide.

    Hope this helps

    One more thing to mention, in the apple doc for this property:

    // As a courtesy when not using auto layout, this value is safe to refer to in -viewDidLayoutSubviews, or in -layoutSubviews after calling super

    Use this property in these two functions will get you the accurate value, since the layout has been initialized. If you use it in the viewDidLoad function, this property will be 0.

    0 讨论(0)
  • 2021-02-01 15:57

    This gets the length (in points) of the portion of a view controller's view that is overlaid by translucent or transparent UIKit bars.

    override func viewDidLayoutSubviews() {
        super.viewDidLayoutSubviews()
        let topSpace:CGFloat
        let bottomSpace:CGFloat
        if #available(iOS 11.0, *) {
            topSpace = self.view.safeAreaInsets.top
            bottomSpace = self.view.safeAreaInsets.bottom
        } else {
            topSpace = self.topLayoutGuide.length
            bottomSpace = self.bottomLayoutGuide.length
        }
    }
    
    0 讨论(0)
  • 2021-02-01 16:12

    If someone is looking for how to calculate the height of insets of SafeLayoutGuide available for iOS 11 because Top and Bottom Layout Guide are deprecated now, you can find it in:

    view.safeAreaInsets
    

    Notice that Top and Bottom Layout Guide were a part of ViewController, and now SafeLayoutGuide is a part of the main view of the ViewController.

    0 讨论(0)
提交回复
热议问题