iPhone上的巨大导航栏

时间:2018-10-12 13:55:10

标签: ios swift

我正在尝试学习如何以编程方式创建应用程序的UI。 我向应用程序添加了一个带有代码的导航控制器,这是代码:

AppDelegate:

    var window: UIWindow?
var navigationController: UINavigationController?

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {

    window = UIWindow(frame: UIScreen.main.bounds)
    if let window = window{
        let mainVC = MainVC()
        navigationController = UINavigationController(rootViewController: mainVC)
        window.rootViewController = navigationController

        window.makeKeyAndVisible()
    }
    return true
}

这是我的mainVC:

    class MainVC: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        view.backgroundColor = UIColor.white

        navigationController?.navigationBar.isTranslucent = false

        navigationController?.navigationBar.barTintColor = UIColor.blue
        navigationController?.navigationBar.prefersLargeTitles = true
        navigationItem.title = "Hello"
        setupTextBox()
        // Do any additional setup after loading the view, typically from a nib.
    }

    let textBox: UITextField = {
        var tBox = UITextField(frame: CGRect(x: 100, y: 100, width: 200, height: 30))
        tBox.placeholder = "Please Enter Name"
        tBox.textAlignment = .center
        tBox.borderStyle = .roundedRect
        tBox.backgroundColor = UIColor.red

        return tBox
    }()

    private func setupTextBox(){
        view.addSubview(textBox)
    }
}

导航栏确实出现了,但它很大,无法找到应有的查看方式。 这是导航栏的图像:

enter image description here

我在做什么错了?

3 个答案:

答案 0 :(得分:3)

是由于navigationController?.navigationBar.prefersLargeTitles = true 你过得很好 只需了解这是具有最高安全区域+大标题的iPhone X

答案 1 :(得分:1)

您没有做错任何事情。这就是UINavigationBar在iPhone X,iPhone XR和iPhone XS上的外观。所有这些设备都带有“ X”斜角。

这是另一个有用的SO帖子:What is the top bar height of iPhone X?

答案 2 :(得分:1)

大型导航栏是一种导航栏样式,当设置了preferredLargeTitles时使用。所以这行导致您的问题

navigationController?.navigationBar.prefersLargeTitles = true

将其更改为false,您将获得一个较小的*导航栏

注意:*由于iPhone X系列设备上的“缺口”,它仍会比正常情况大