2011-10-26 7 views
0
- (void) drawRect:(CGRect)rect { 

self.tintColor = [UIColor colorWithRed:80.0f/255.0f green:150.0f/255.0f blue:185.0f/255.0f alpha:1]; 


[[UIImage imageNamed:@"cabecera.png"] drawInRect:rect]; 

} 

このコードを "CustomNavigation.m"ファイルに書き込んで、色の色とUINavigationバーの背景を変更します。網膜エミュレータでも、非網膜IOSデバイスでもうまく動作しますが、iOS 5搭載のiPhone 4ではコードが機能しません。なぜ誰かが知っていますか?ありがとう!カスタムUINavigationBarを描画します。なぜこのコードが網膜ディスプレイで機能しないのですか?

+0

あなたは「それが動作しない」とはどういう意味ですか?あなたはイメージを見ることができない、またはイメージが正しい解決をしていないことを教えてください。 – Mat

+0

イメージは、網膜以外のデバイス:http://postimage.org/image/v6hp11q6x/にのみ現れますが、私は「cabecera.png」と「[email protected]」という2つのイメージを用意しています。網膜デバイス用。 – Jimmy

+0

私は、iOS 5.0の時点では、UINavigationbarの背景イメージを直接設定する方法があることを伝えます。 Dunno、あなたのコードと衝突するかどうか。私はNavigationbarsと新しいiosで問題を抱えていましたが、回避策を講じなければなりませんでした... – Icky

答えて

1

おそらく、網膜および非網膜デバイスは、異なるiOSバージョンにあります。また、drawRect:UINavigationBarに上書きするカテゴリを使用していると仮定しています。これは、もはやあなたがUINavigationBarをサブクラス化し、drawRect:をオーバーライドしたり、iOS5をで新しいカスタマイズ方法がiOS5 release notesからhere

を説明使用する必要があり、iOSの5のとしてサポートされていない:

のiOS 5、UINavigationBar、UIToolbarでは、サブタイトルに が実装されていない限り、drawRect:メソッドが呼び出されないようにUITabBar実装 が変更されました。 drawRectを再実装したアプリケーション にこれらのクラスのいずれかのカテゴリがあれば、drawRect:メソッド が呼び出されないことがわかります。 UIKitはリンクチェックを行い、iOS 5より前にリンクされているアプリで というメソッドが呼び出されないようにしますが、このデザインはiOS 5以降の ではサポートしていません。アプリのいずれかを実行できます。

Use the customization API for bars in iOS 5 and later, which is the preferred way. 

Subclass UINavigationBar (or the other bar classes) and override drawRect: in the subclass. 
関連する問題