2013-10-08 3 views
2

В IOS 6 я использовал этот методполупрозрачный и пользовательские изображения в навигационной панели прошивке 7

- (void)drawRect:(CGRect)rect 
{ 
// Drawing code 
UIImage *image = [UIImage imageNamed: @"nav_bar.png"]; 
[image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)]; 
} 

Но когда я использую это прошивка 7 она покрывает только уходящую строку состояния пустой, я уже пробовал использовать больший изображение, оно не работает.

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

+0

Я не уверен, что он будет работать достаточно хорошо. Если бы я был вами, я бы попытался поиграть с альфой вашего изображения, однако из того, что я видел, дизайн ios7 должен быть как можно более легким (так что никакой пользовательской кричащей графики в навигационных барах) – Yanchi

ответ

8

Если я правильно понял ваш вопрос (извинения, если у меня его нет), вы хотите расширить фоновое изображение навигации, чтобы он находился за панель состояния тоже.

Вы можете попробовать этот код:

[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"nav_bar.png"] forBarMetrics:UIBarMetricsDefault]; 

для того, чтобы nav_bar.png изображение, чтобы быть за строкой состояния тоже нужно добавить 20px в высоту изображения. Высота панели навигации составляет 44 пикселя.

В основном, nav_bar.png должна быть ширина 320 пикселей и высота объявления 64 пикселя. Затем он будет за панель состояния.

Я бы посоветовал, что с iOS 7 вы не используете кричащую графику (как сказал Янчи) и просто используйте простой цвет. Либо выбрать тот, в белом или черном цвете по умолчанию, или использовать следующий код для изменения цветового оттенка Nav Bar:

self.navigationController.navigationBar.barTintColor = [UIColor #Choose a colour#]; 

Вы заменяете # выбрать цвет # с UIColor, такими как blueColor или redColor. Вы также можете программно установить прозрачность на YES.

self.navigationController.navigationBar.translucent = YES; 

Чтобы ответить на ваш последний вопрос о том, можно ли сделать полупрозрачным Nav Bar, как сказал Янчи, вы будете только в состоянии изменить альфа фактического изображения. Если вам нужен эффект размытия (стиль iOS 7), он не работает. Я пробовал, и, похоже, нет способа. Он работает только с сплошными цветами (с использованием кода UIColor, о котором я упоминал).

Надеюсь, что это поможет.

0

Если вам нужно использовать фоновое изображение в качестве UIColor (иногда вам это нужно) по каким-либо причинам:

[[UINavigationBar appearance] setBarTintColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"navbar"]]]; 
Смежные вопросы