UINavigationBarの背景をに変更したいのですが、機能し[UIColor colorWithImage:]
ません。私は何が欠けていますか?
編集:
サブクラスを作成したら、それを使用するようにUINavigationControllerをどこに設定しますか?
UINavigationBarの背景をに変更したいのですが、機能し[UIColor colorWithImage:]
ません。私は何が欠けていますか?
編集:
サブクラスを作成したら、それを使用するようにUINavigationControllerをどこに設定しますか?
tintColor
プロパティを使用しての色を変更できますUINavigationBar
が、画像を背景として設定するには、独自のUINavigationBar
サブクラスを提供し、drawRect:
メソッドをオーバーライドする必要があります。次に例を示します。
- (void)drawRect:(CGRect)rect {
// Drawing code
UIImage *img = [UIImage imageNamed: @"background-image.png"];
[img drawInRect:CGRectMake(0,
0,
self.frame.size.width,
self.frame.size.height)];
}
Interface Builderを使用してUIを構築し、カスタムナビゲーションバーを使用する場合は、Interface BuilderでUINavigationBar要素を選択し、インスペクターを開き、[ID]タブで、次のようにクラスフィールドでUINavigationBarサブクラスを指定します。
ナビゲーションバーに画像を表示するには、自分で画像を描画する必要がありますが、実際にはそれほど難しくありません。これを次のように保存しますUINavigationBar+CustomBackground.m
(UINavigationBarにカスタムカテゴリを追加します):
@implementation UINavigationBar (CustomBackground)
- (void)drawRect:(CGRect)rect {
UIImage *image = [UIImage imageNamed:@"NavMain.png"];
[image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
}
@end