uiviewcontroller顶级布局控制

    @available(iOS 7.0, *)

    open var edgesForExtendedLayout: UIRectEdge // Defaults to UIRectEdgeAll

    @available(iOS 7.0, *)

    open var extendedLayoutIncludesOpaqueBars: Bool // Defaults to NO, but bars are translucent by default on 7_0.  

    @available(iOS, introduced: 7.0, deprecated: 11.0, message: "Use UIScrollView's contentInsetAdjustmentBehavior instead")

    open var automaticallyAdjustsScrollViewInsets: Bool // Defaults to YES

    // Called just before the view controller's view's layoutSubviews method is invoked. Subclasses can implement as necessary. The default is a nop.

    @available(iOS 5.0, *)

    open func viewWillLayoutSubviews()

preferredContentSize

       self.edgesForExtendedLayout = UIRectEdgeAll;

         self.extendedLayoutIncludesOpaqueBars = YES;

         self.automaticallyAdjustsScrollViewInsets = NO;

        if #available(iOS 11.0, *){

            

            scrollView.contentInsetAdjustmentBehavior = .never

            

        } else {

            self.automaticallyAdjustsScrollViewInsets = false

            // Fallback on earlier versions

        }

原文地址:https://www.cnblogs.com/feng9exe/p/9687379.html