2

iOS 6では、この方法を使用しました

 - (void)drawRect:(CGRect)rect 
{
// Drawing code
UIImage *image = [UIImage imageNamed: @"nav_bar.png"];
[image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
}

しかし、これをiOS 7で使用すると、ステータスバーを空のままにすることしかカバーされません。すでに大きな画像を使用しようとしましたが、機能しません。

しかし、最も重要なことは、ナビゲーション バーで半透明オプションを使用したいということです。半透明と互換性があり、ナビゲーション バーにカスタム イメージがありますか?

4

3 に答える 3

8

私があなたの質問を正しく理解していれば (理解できていない場合は申し訳ありません)、ナビゲーションの背景画像を拡張してステータス バーの背後にも配置してください。

このコードを試すことができます:

[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"nav_bar.png"] forBarMetrics:UIBarMetricsDefault];

nav_bar.png 画像もステータス バーの背後に配置するには、画像の高さに 20px を追加する必要があります。ナビゲーション バーの高さは 44px です。

基本的に、nav_bar.png は幅 320 ピクセル、広告の高さ 64 ピクセルである必要があります。ステータスバーの後ろに表示されます。

iOS 7 では、(Yanchi が言ったように) 派手なグラフィックを使用せず、単純な色を使用することをお勧めします。白または黒のデフォルトのものを選択するか、次のコードを使用してナビゲーション バーの色合いを変更します。

self.navigationController.navigationBar.barTintColor = [UIColor #Choose a colour#];

#Choose a color# を blueColor や redColor などの UIColor に置き換えます。プログラムで透過性を YES に設定することもできます。

self.navigationController.navigationBar.translucent = YES;

Yanchi が言ったように、ナビゲーション バーを半透明にできるかどうかについての最後の質問に答えるには、実際の画像のアルファのみを変更できます。ぼかし効果 (iOS 7 スタイル) が必要な場合は機能しません。私は試してみましたが、方法がないようです。単色でのみ機能します(前述の UIColor コードを使用)。

それが役立つことを願っています。

于 2013-10-12T09:23:38.093 に答える
4

ここに最高の記事があります:

http://www.appcoda.com/customize-navigation-status-bar-ios-7/

于 2013-10-31T15:12:26.507 に答える
0

UIColor何らかの理由で背景画像を使用する必要がある場合 (場合によっては必要になります):

[[UINavigationBar appearance] setBarTintColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"navbar"]]];
于 2015-03-29T05:15:40.813 に答える