Как увеличить высоту панели навигации в Xcode?

Я работаю над приложением, в котором мне нужно сохранить панель навигации. когда я пишу какой-либо заголовок на панели, время и название вроде бы очень близко друг к другу. Я хотел увеличить высоту штанги, чтобы она могла немного дышать.

Ответ 1

выберите ViewController → выберите элемент навигации Подсказка → Добавить пробел он увеличивает height of **Navigation bar**

Проверьте изображение здесь: введите описание изображения здесь

Programatically

Добавьте это в метод viewWillAppear или viewDidAppear

Objective-C

[self.navigationController.navigationBar setFrame:CGRectMake(0, 0, self.view.frame.size.width,80.0)];

Swift

self.navigationController.navigationBar.frame = CGRectMake(0, 0, self.view.frame.size.width, 80.0)

Свифта-3

self.navigationController!.navigationBar.frame = CGRect(x: 0, y: 0, width: self.view.frame.size.width, height: 80.0)

iOS 11

введите описание изображения здесь

цель C

for (UIView *subview in self.navigationController.navigationBar.subviews) {
    if ([NSStringFromClass([subview class]) containsString:@"BarBackground"]) {
        CGRect subViewFrame = subview.frame;
        // subViewFrame.origin.y = -20;
        subViewFrame.size.height = 100;
        [subview setFrame: subViewFrame];
    }
}

скор

for subview in (self.navigationController?.navigationBar.subviews)! {
       if NSStringFromClass(subview.classForCoder).contains("BarBackground") {
            var subViewFrame: CGRect = subview.frame
            // subViewFrame.origin.y = -20;
            subViewFrame.size.height = 100
            subview.frame = subViewFrame

        }

    }

Ответ 3

НАСТОЯЩЕЕ РЕШЕНИЕ НЕ ДЕЙСТВИТЕЛЬНО РАБОТАЕТ В Xcode 8.xx и более поздних версиях!

Вы также можете увеличить высоту, не создавая пользовательскую навигацию, выполнив следующие шаги

Шаг 1 Выберите панель навигации в раскадровке или XIB

enter image description here

Шаг 2 Скопируйте ObjectID из инспектора идентификации

enter image description here

Шаг 3 Откройте раскадровку /XIB в качестве исходного кода

enter image description here

Шаг 4 Найти ObjectID в исходном коде после ObjectID в поиске

enter image description here

Шаг 5 Изменить высоту! это все

enter image description here

Я надеюсь, что это поможет вам

Ответ 4

Добавьте в проект следующее расширение:

import UIKit

extension UINavigationBar {

    override open func sizeThatFits(_ size: CGSize) -> CGSize {
        return CGSize(width: UIScreen.main.bounds.size.width, height: 80.0)
    }

}

Ответ 5

Добавьте это в метод viewWillAppear

CGFloat height = 80;
[self.navigationController.navigationBar setFrame:CGRectMake(0, 0,
self.view.frame.size.width,height)];

если он сначала увеличивается и сжимается до исходной высоты, а затем добавляет этот код в метод viewDidAppear

Ответ 6

Apple предлагает не изменять размер панели navigationBar, а удалять тень от панели и добавлять собственный вид под панель navigationBar. Это может работать в большинстве случаев. Проверьте образцы Apple.

Ответ 7

Вы не можете изменить высоту по умолчанию NavigationBar, если я не ошибаюсь.

Хотя вы можете создать пользовательский NavigationBar и добавить к нему пользовательскую высоту.

Ответ 8

Нам нужно изменить высоту панели навигации каждый раз, когда отображается представление. Поэтому введите код в viewWillAppear

override func viewWillAppear(_ animated: Bool) {
     self.navigationController?.navigationBar.frame = CGRect(x: 0, y: 0, width: self.view.frame.width, height: 80)
}

мы можем установить ширину как ширину вида и изменить высоту по своему желанию.

Ответ 9

Я бы спрятал панель навигации и внедрил свой собственный. Таким образом, вы можете создать стиль именно так, как хотите.

Существует простой учебник о том, как это сделать: https://www.codeschool.com/blog/2014/11/11/ios-app-creating-custom-nav-bar/

Ответ 10

[self.navigationController.navigationBar setPrefersLargeTitles:YES]; собирается увеличить высоту панели навигации программно

Ответ 11

Если вы

  • с помощью раскадровки (о которой вы сказали)
  • с помощью автозапуска и
  • с помощью добавленной вручную панели навигации (в отличие от той, которая предоставляется контроллером навигации)

вы можете просто установить ограничение высоты на панели навигации.

xcode добавить новый диалог ограничений