Swift 查看标签栏下方的布局

Swift View Layout below tabbar

class AppDelegate: UIResponder, UIApplicationDelegate {

var window: UIWindow?

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
    self.window = UIWindow(frame: UIScreen.mainScreen().bounds)
    self.window?.backgroundColor = UIColor.whiteColor()
    self.window?.makeKeyAndVisible()

    let vc = ViewController()
    vc.tabBarItem = UITabBarItem(...)
    ...
    let tabbar = UITabBarController()
    tabbar.setViewControllers([...,vc,...], animated: false)

    self.window?.rootViewController = tabbar

    tabbar.selectedIndex = 2
    return true
   }
}
class ViewController: UIViewController {
    override func loadView() {
        super.loadView()
        self.view.backgroundColor = UIColor.yellowColor()
        //self.automaticallyAdjustsScrollViewInsets = false;
    }

    override func viewDidLoad() {
        super.viewDidLoad()
    }

    override func viewDidAppear(animated: Bool) {
         super.viewDidAppear(animated)
  }
}

我没有使用故事板。

以上内容导致 ViewControllers 视图扩展到选项卡栏下方。我怎样才能阻止它?

我试过将视图框架设置为

CGRectMake(0, 0, self.view.frame.width, self.view.frame.height - tabBarController.view.frame.height))

但这没有用。

您可以使用 UIViewControlleredgesForExtendedLayout 属性 来设置要在导航栏下延伸的边缘。如果你不想要任何东西,你可以简单地说:

self.edgesForExtendedLayout = .None

对于Swift5或以上

self.edgesForExtendedLayout = []