UINavigationBar'ın alt sınıfını kullanmak istedim (özel arka plan resmi & metin rengini ayarlamak için) ve uygulamasındaki tüm gezinme çubukları için bunu kullanıyorum. NavigationBar salt okunur gibi UINavigationController API docs bakıldığında görünür:Alt Sınıflandırma UINavigationBar ... UINavigationController'da nasıl kullanırım?
@property (nonatomic, salt okunur) UINavigationBar * NavigationBar
aslında özel bir UINavigationBar kullanmak için bir yolu var mı UIViewControllers'im Ben diğer uygulamalar flickr gibi, özel bir gezinme çubukları yapmış olduğunu biliyoruz:
#import <UIKit/UIKit.h>
@interface MyNavigationBar : UINavigationBar <UINavigationBarDelegate> {
}
@end
uygulama
#import "MyNavigationBar.h"
@implementation MyNavigationBar
- (id)initWithFrame:(CGRect)frame {
if (self = [super initWithFrame:frame]) {
// Initialization code
}
return self;
}
- (void)drawRect:(CGRect)rect {
// override the standard background with our own custom one
UIImage *image = [[UIImage imageNamed:@"navigation_bar_bgd.png"] retain];
[image drawInRect:rect];
[image release];
}
#pragma mark -
#pragma mark UINavigationDelegate Methods
- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated{
// use the title of the passed in view controller
NSString *title = [viewController title];
// create our own UILabel with custom color, text, etc
UILabel *titleView = [[UILabel alloc] init];
[titleView setFont:[UIFont boldSystemFontOfSize:18]];
[titleView setTextColor:[UIColor blackColor]];
titleView.text = title;
titleView.backgroundColor = [UIColor clearColor];
[titleView sizeToFit];
viewController.navigationItem.titleView = titleView;
[titleView release];
viewController.navigationController.navigationBar.tintColor = [UIColor colorWithRed:0.1 green:0.2 blue:0.3 alpha:0.8];
}
- (void)navigationController:(UINavigationController *)navigationController didShowViewController:(UIViewController *)viewController animated:(BOOL)animated{
}
- (void)dealloc {
[super dealloc];
}
@end
I:
İştehttp://img.skitch.com/20100520-bpxjaca11h5xne5yakjdc2m6xx.png
benim UINavigationBar alt sınıfıdır arka planı değiştirmek için bir kategori kullanabileceğimi biliyorum görüntü, ama hala gezinti çubuğu başlığı
@implementation UINavigationBar (CustomImage)
- (void)drawRect:(CGRect)rect {
UIImage *image = [UIImage imageNamed: @"navigation_bar_bgd.png"];
[image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
}
@end
herhangi bir öneri veya diğer çözümler metin rengini ayarlamak mümkün olmak istiyorum? Temel olarak, Flickr'ın uygulama gezinme çubukları gibi açık bir arka plan ve koyu metin oluşturmak istiyorum.
Bu, gezinme çubuğunun arka planını değiştirmek için çalışır, ancak açık renkli arka plan rengi kullanmak istediğimden, gezinme çubuğunun varsayılan beyaz metin rengini de değiştirmek isterim. beyaz arka plan, varsayılan beyaz metni karanlık bir şeye dönüştürebilirdim – funkadelic