Я работаю над приложением, в котором мне нужно сохранить панель навигации. когда я пишу какой-либо заголовок на панели, время и название вроде бы очень близко друг к другу. Я хотел увеличить высоту штанги, чтобы она могла немного дышать.
Как увеличить высоту панели навигации в 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
}
}
Ответ 2
Пожалуйста, обратитесь к рекомендованному яблоком для расширенной панели навигации здесь,
https://developer.apple.com/library/content/samplecode/NavBar/Introduction/Intro.html
Ответ 3
НАСТОЯЩЕЕ РЕШЕНИЕ НЕ ДЕЙСТВИТЕЛЬНО РАБОТАЕТ В Xcode 8.xx и более поздних версиях!
Вы также можете увеличить высоту, не создавая пользовательскую навигацию, выполнив следующие шаги
Шаг 1 Выберите панель навигации в раскадровке или XIB
Шаг 2 Скопируйте ObjectID из инспектора идентификации
Шаг 3 Откройте раскадровку /XIB в качестве исходного кода
Шаг 4 Найти ObjectID в исходном коде после ObjectID в поиске
Шаг 5 Изменить высоту! это все
Я надеюсь, что это поможет вам
Ответ 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
Если вы
- с помощью раскадровки (о которой вы сказали)
- с помощью автозапуска и
- с помощью добавленной вручную панели навигации (в отличие от той, которая предоставляется контроллером навигации)
вы можете просто установить ограничение высоты на панели навигации.