5

タブバーにカスタムの背景画像を設定しようとしています。サイズが640x92の「tabbarBack.png」という名前の画像があります。私のコードでは、このように設定しています。

[[[self tabBarController] tabBar] setBackgroundImage:[UIImage imageNamed:@"tabbarBack.png"]];

デバイスでテストすると、タブバーが本来の2倍の大きさになりますか?何か助けはありますか?

敬具

4

4 に答える 4

5

以下の2行を試してください

self.tabBarController.tabBar.autoresizesSubviews = NO;
self.tabBarController.tabBar.clipsToBounds = YES;
于 2012-12-17T10:09:19.430 に答える
1

NSAddictのコメント:画像の名前をtabbarBack@2x.pngに変更します。これは、Retinaディスプレイのピクセルダブリングと呼ばれます。

@ 2xがないと、iOSはスケール係数を適用する必要があることを認識せず、そのまま使用されますが、半分にする必要があります。

したがって、ハックは次のとおりです。

[[[self tabBarController] tabBar] setBackgroundImage:[UIImage imageNamed:@"tabbarBack@2x.png"]];

実際にはあるはずです

  • tabbarBack png(45ピクセル程度)
  • tabbarBack@2x.png

だからあなたはただ言う

[[[self tabBarController] tabBar] setBackgroundImage:[UIImage imageNamed:@"tabbarBack.png"]];
于 2012-12-17T10:05:15.500 に答える
1

次の行があるかどうかを確認します。

    [[UITabBar appearance] setShadowImage:image];

削除するか、nil に設定する必要があります。

于 2014-03-14T22:41:47.457 に答える