0

プロジェクトでTTLauncherViewを使用しています。カスタムナビゲーションバーの背景を使用するために、アプリデリゲートでUINavigationBarをサブクラス化しました。これは正常に機能し、すべてのナビゲーションバーがこのカスタムスタイルになりました。

@implementation UINavigationBar (CustomNavBarBG)
-(void)drawRect:(CGRect)rect{
    UIImage *image = [UIImage imageNamed:@"navbar_s.png"];
    [image drawInRect:self.bounds];
}
@end

ビューをナビゲートすると、バーの中央にタイトルが表示されます。しかし、メイン画面のナビゲーションバーであるランチャーに、タイトルの代わりに画像を表示したいと思います。これは可能ですか?

それを実装する方法は?

4

1 に答える 1

6

UIButtonなどのカスタムUIViewを使用してコントローラーをロードするときに、デフォルトのタイトルビューをオーバーライドできます。

///////////////////////////////////////////////////////////////////////////////////////////////////
- (void)viewDidLoad {
  [super viewDidLoad];

  UIButton *logoView = [[[UIButton alloc] initWithFrame:CGRectMake(0,0,85,40)] autorelease];
  [logoView setBackgroundImage:[UIImage imageNamed:@"navBarLogo.png"] forState:UIControlStateNormal];
  [logoView setUserInteractionEnabled:NO];

  self.navigationItem.titleView = logoView;
}

ここでUIButtonを使用した理由は実際にはわかりません:-)代わりにUIImageViewを使用できるかもしれませんが、このコードは正常に機能します。

于 2011-09-26T20:50:51.847 に答える