2009-09-06 5 views
0

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

//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)]; 

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

ответ

2

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

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

EDIT: Посмотрите на свой код, что такое [UINavigationController new]? Вы должны сделать [[UINavigationController alloc] init], не так ли?

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

+0

вы правы, его не подклассы, думать о других вещах, при написании вопроса. как для «нового», должен был скопировать код где-то –

+0

, новый метод - это просто метод ярлыка для alloc/init. работает точно так же. – horseshoe7

1

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

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

0

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

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

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