4

私のアプリでは、uinavigationアイテムに画像を適用しました。iOS 5では正常に動作していますが、iOS6では拡張されています。ナビゲーションバーに左または右のバーボタン項目がありません。検索しすぎましたが、答えが見つかりませんでした。

これが私のコードです:

UIImageView *navigationImage=[[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 98, 34)];
navigationImage.image=[UIImage imageNamed:@"topNav-logo.png"];
self.navigationItem.titleView=navigationImage;

画像は次のように表示されます。

スクリーンショット

下の画像のように表示されるはずですが、iOS6では展開されたように表示されます。iOS5ではうまく機能します。

結果は次のとおりです。

結果のスクリーンショット

4

2 に答える 2

5

iOS 6から同じ問題が発生し、最もクレイジーな回避策が見つかりました。

同じ寸法のUIImageViewをもう1つ作成します。次に、navigationImageをサブビューとして追加します。私の場合、これにより自動サイズ変更ができなくなります。

UIImageView *workaroundImageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 98, 34)];
[workaroundImageView addSubview:navigationImage];
self.navigationItem.titleView=workaroundImageView;

誰かが適切な解決策や説明を見つけたら、それを投稿してください。

于 2013-01-23T12:57:26.770 に答える
0

私のプロジェクトには次のコードがあり、iOS5とiOS6で正常に動作します。これを試してみてください。

self.navigationItem.titleView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"topNav-logo.png"]];

また、画像の@2xサイズと通常サイズの両方を用意してください。

于 2012-12-21T12:03:05.353 に答える