2013-05-08 5 views
0

Я совершенно новый для разработки iOS и его первый раз, когда вы здесь.Как изменить UINavigationBar light

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

self.navigationController.navigationBar.tintColor = [UIColor colorWithRed:0.169 green:0.373 blue:0.192 alpha:0.9]; 

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

Я не знаю, лучше ли использовать изображение или рисовать свет с помощью xcode, это лучший вариант. в основном из-за потребления памяти и эффективности. Я предполагаю, что рисование света было бы лучшим вариантом, мне просто нужно знать, как это сделать.

Я попытался найти это, но, вероятно, моя нехватка знаний iOS-разработчика не позволяет мне найти правильный учебник или образец кода о том, как это сделать.

Любая помощь приветствуется.

enter image description here

это еще один пример, что распределение света отличается от заданного по умолчанию UINavBar. Мне очень интересно, если бы они использовали фотографию или рисовал его с Xcode

enter image description here

ответ

0

Что мне нужно было PaintCode, как это лучший способ привлечь и изображения с помощью кода который как память эффективен как нормальное изображение, но с учетом того, что в коде, он обеспечивает высокую степень настройки изображения. см. here для сообщения о памяти в обратном порядке

0

Было бы лучше использовать собственное изображение в баре, а не «рисовать» свечение.

0

вы можете использовать собственное изображение, и попробовать это:

[[UINavigationBar appearance] setBackgroundImage:yourImage forBarMetrics:UIBarMetricsDefault] 

добавить этот код в приложение делегата, он работает как глобальные настройки, все панели навигации будет установлен

0
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{  
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
    self.imgBackgroundView = [[UIImageView alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
[self.window addSubview:self.imgBackgroundView]; 
    [self addCustomNavigationController]; 
[self addCustomNavigationController]; 
} 

- (void)addCustomNavigationController 
{ 
    self.viewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil]; 
    self.navigationController = [[UINavigationController alloc] initWithRootViewController:self.viewController]; 
    if ([[UINavigationBar class] respondsToSelector:@selector(appearance)]) 
    { 
     [[UINavigationBar appearance] setBackgroundImage:[self getImageFromResource:@"topbar"] forBarMetrics:UIBarMetricsDefault]; 
     [[UINavigationBar appearance] setTitleTextAttributes: 
     [NSDictionary dictionaryWithObjectsAndKeys: 
      [UIColor colorWithRed:255.0/255.0 green:255.0/255.0 blue:255.0/255.0 alpha:1.0], 
      UITextAttributeTextColor, 
      [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.8], 
      UITextAttributeTextShadowColor, 
      [NSValue valueWithUIOffset:UIOffsetMake(0, 0)], 
      UITextAttributeTextShadowOffset, 
      [UIFont fontWithName:@"HelveticaNeue-Bold" size:18.0], 
      UITextAttributeFont, 
      nil]]; 
    } 
    [[NSUserDefaults standardUserDefaults] setObject:@"Login" forKey:@"randomView"]; 
} 

- (UIImage*)getImageFromResource:(NSString*)imageName 
{ 
    return [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:imageName ofType:@"png"]]; 
} 
0

Привет Пожалуйста, используйте внешний вид для iOS5 и iOS6 [[UIBarButtonItem внешний вид] setTintColor: [UIColor colorWithRed: 0.08 green: 0.72 blue: 0.78 alpha: 1]];

0

одним альтернативным решением может быть добавление UIButton на NavigationBar.

установить его передачу коснуться выделением имущества из инспекторов атрибутов или с помощью

[buttonGlow setShowsTouchWhenHighlighted:YES]; 

и в viewDidLoad:

[buttonGlow setHighlighted:YES]; 
Смежные вопросы