0

以下のコードで、Navigation Bar.in の背景画像を変更したい

UINavigationBar *navBar = self.navigationController.navigationBar;

UIImageView *image1=[[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 320, 50)];

image1.image = [UIImage imageNamed:@"image2_ram.jpg"];
[navBar setBackgroundImage:image1.image forBarMetrics:UIBarMetricsDefault];

画像は変更されますが、画像の高さが変更されないのはなぜですか?

4

1 に答える 1

2

iOS 4.0 も検討している場合は、そのように設定しないでください。

これを使って

@implementation UINavigationBar (CustomImage)
- (void)drawRect:(CGRect)rect {
    UIImage *image = [UIImage imageNamed:@"bgTopBar.png"];
    [image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
}
@end

または iOS 5 の場合

これを使用します。フレームを指定する必要はありません。また、高さを 44 より大きく変更することはできません。ナビゲーション バーのデフォルトの高さは44です。

    UINavigationBar *navBar = self.navigationController.navigationBar;
    UIImage *image = [UIImage imageNamed:@"bgTopBar.png"];
    [navBar setBackgroundImage:image forBarMetrics:UIBarMetricsDefault];
于 2012-05-24T07:38:31.093 に答える