Как установить высоту UINavigationBar в приложении для iphone

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

    //set up the navigation
UINavigationController *navigationController = [UINavigationController new];

[navigationController.navigationBar setBarStyle:UIBarStyleBlack];
[navigationController.navigationBar setTintColor:[UIColor purpleColor]];
[navigationController.navigationBar setBounds:CGRectMake(0.0, 0.0, 480.0, 100.0)];
[navigationController.navigationBar setFrame:CGRectMake(0.0, 0.0, 480.0, 100.0)];

но безрезультатно. есть идеи?


person Aran Mulholland    schedule 06.09.2009    source источник


Ответы (3)


Я не думаю, что вы можете изменить высоту панели навигации. За исключением случаев, когда вы добавляете подсказку... Но это не то, что вам нужно.

Рамка — это видимая область представления. Границы - это внутренняя область. Обычно он имеет начало (0, 0) и такой же ширины и высоты, как кадр. Однако, когда содержимое выходит за пределы видимой области (например, с UIScrollView), границы могут быть больше (и исходная точка другая). Вы редко видите границы, которые меньше, чем соответствующие рамки.

РЕДАКТИРОВАТЬ: Глядя на ваш код, о чем [UINavigationController new]? Вы должны выполнить [[UINavigationController alloc] init], не так ли?

Кроме того, то, что вы делаете, на самом деле не является подклассом...

person Pieter Jongsma    schedule 06.09.2009
comment
вы правы, это не подклассы, а мысли о других вещах при написании вопроса. что касается "нового", то наверняка откуда-то скопировал код - person Aran Mulholland; 07.09.2009
comment
новый метод - это просто метод быстрого доступа к alloc/init. работает точно так же. - person horseshoe7; 01.08.2011

На момент 2009 года, вероятно, не было возможности изменить высоту UINavigationController. Однако в iOS SDK 4.3 есть способ (хак).

Чтобы изменить высоту UINavigationController, измените размер его кадра в функции viewWillAppear:animated:. Затем высота останется настроенной во всем приложении.

person Raptor    schedule 04.10.2011

Насколько я знаю, стандартная высота панели навигации не должна изменяться.

«В частности, можно изменять свойства barStyle, tintColor и полупрозрачность, но вы никогда не должны напрямую изменять свойства уровня UIView, такие как рамка, границы, альфа-канал или скрытые свойства».

Если вы хотите настроить внешний вид панели навигации, вы можете использовать прокси внешнего вида [UINavigationBarВнешний вид] в iOS 5

person sahiti    schedule 11.01.2012