2014-12-06 4 views
4

Простой вопрос: как я могу увеличить высоту панели навигации, чтобы добавить в нее дополнительные виджеты , а сохранить размытие?Как увеличить высоту UINavigationBar?

Примерами являются календарь приложения, где будний сокращения добавляются в нижней части панели навигации ...

Calendar app

... и в почте при перемещении почты в другую папку:

Mail app

+0

正 し い 答 え の 場合, 受 け 入 れ し て く だ さ い – Jageen

ответ

0

Создать UINavigationBar категорию с пользовательским sizeThatFits.

@implementation UINavigationBar (customNav) 
- (CGSize)sizeThatFits:(CGSize)size 
{ 
    CGSize newSize = CGSizeMake(self.frame.size.width,70); 
    return newSize; 
} 
@end 
5

Как iAnurag сообщение ANS является правильным, но все еще есть некоторые проблемы Ui (ширина не является правильным)


Вы можете изменить размер, добавив категории, как показано ниже

Пример проекта
Download

Код

#import "ViewController.h" 
@implementation UINavigationBar (customNav) 
- (CGSize)sizeThatFits:(CGSize)size { 
    CGRect rec = self.frame; 
    CGRect screenRect = [[UIScreen mainScreen] bounds]; 
    rec.size.width = screenRect.size.width; 
    rec.size.height = 70; 
    return rec.size; 
} 
@end 

Выход
enter image description here
When press on "Button" enter image description here


Проблема в iAnurag кодекса
enter image description here

+0

. Примечание: Мой код тестируется на устройствах iOS8 – Jageen

+2

Чувак, загруженный билд работает отлично на Xcode 6 с прошивкой 8 iPhone 6 Тренажер. –

+0

Проект, загруженный с вашей ссылки, работает отлично в соответствии с моим ответом. – iAnurag

5

https://developer.apple.com/library/prerelease/content/samplecode/NavBar/Introduction/Intro.html

От ReadMe.md:

Расширенная панель навигации #### Этот пример демонстрирует размещение настраиваемое представление под навигационной панели таким образом, чтобы просмотреть

, как представляется, быть частью навигационная панель. Этот метод может использоваться для создания интерфейса, аналогичного приложению iOS Calendar.

Мое скромное мнение: не переопределяйте sizeThatFits(_:), не устанавливайте ограничения на высоту навигационной панели. Просто сделайте иллюзию из приведенного выше примера.

+0

Как вы указываете, пример кода на самом деле просто иллюзия расширенной панели навигации. Бар имеет одинаковую высоту, они просто удаляют тень и добавляют другой вид в нижнюю часть навигационной панели. Они также удаляют любую прозрачность. Пример кода Apple в лучшем случае - взлом. –

Смежные вопросы