1

カスタムのuinavigationnバーを作成したいというテーブルビューがありますこのコードを試しました

UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, self.view.bounds.size.width, self.view.bounds.size.height)];
//here for v, width= navBar width and height=navBar height
//    
[view setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"newsBanner.png"]]];
[self.navigationController.navigationBar addSubview:view];

問題は、画像が中央に配置されていないことです。サイズが640 x 72であるためです...画像を合わせる方法はありますか?

4

1 に答える 1

2

ナビゲーションバーの高さは44ピクセルのみにする必要があります。その上、幅は最大320ポイントです(網膜デバイスでは640ピクセル、非HDデバイスでは320ピクセル)。そのため、画像のサイズが大きすぎます。320x44のサイズの画像を作成し、次の手順を実行します。

UINavigationBar *theBar = self.navigationController.navigationBar;
if ( [theBar respondsToSelector:@selector(setBackgroundImage:forBarMetrics:)] ) {
    UIImage *image = [UIImage imageNamed:@"your image here"];
    [theBar setBackgroundImage:image forBarMetrics:UIBarMetricsDefault];
}

もちろん、これはiOS5でのみ機能します。5.0未満のOSでバックグラウンドを設定する他の方法を見つける必要があります。しかし、その問題に対処するスタックオーバーフローの質問はたくさんあります:)

于 2012-07-09T20:06:12.123 に答える