ナビゲーションバーの背景画像に関して
ナビゲーションバーの背景画像ですが、実は、独自の画像ファイルを使えます。
それですねIOS5以降のやり方を記載します。
IOS5とIOS6は、このやり方で大丈夫なんですが、IOS4だと、やり方が違います。
多分、IOS4はもう対応しなくとも大丈夫...だろう。
やり方は、UINavigationBarのBackgroundImageに画像を設定するだけです。
今回は、下の画像を作ったので、それをナビゲーションバーの背景画像にします。
それとですねSDKに標準に組み込まれてるQuartzCoreと言うフレームワークを使います。
まずは、UIViewControllerのインターフェイス定義です。
QuartzCoreをインポートします。
#import <UIKit/UIKit.h> #import <QuartzCore/QuartzCore.h> @interface RootViewController : UIViewController @end
次に実装部分ですが、viewDidLoadメソッドに下記の定義を追加します。
- (void)viewDidLoad { [super viewDidLoad]; self.navigationItem.title = @"ToDoリスト"; UIImage *image = [[UIImage imageNamed:@"sample.png"] stretchableImageWithLeftCapWidth:0 topCapHeight:1]; UIImageView *imageView = [[UIImageView alloc] initWithImage:image]; imageView.frame = self.navigationController.navigationBar.bounds; imageView.autoresizingMask = (UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight); imageView.layer.zPosition = -FLT_MAX; [self.navigationController.navigationBar setBackgroundImage:image forBarMetrics:UIBarMetricsDefault]; }
やってることは、簡単で、UIImageとUIImageViewをサイズ調整とか、
ナビゲーションバーのサイズとか引っ張ってきて、全体的な調整したりした後に、
UINavigationBarのBackgroundImageに設定しているだけです。
これを動かすとナビゲーションバーは、下見たなイメージで表示されます。