1

外観プロキシを使用して、ナビゲーション バーの戻るボタンの背景画像を設定しています。

[[UIBarButtonItem appearance] setBackButtonBackgroundImage:[[UIImage imageNamed:@"arrow-back-button"] resizableImageWithCapInsets:UIEdgeInsetsMake(0., 9., 0., 0.)]
                                                  forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];

これは iOS 6 でうまく機能し、完璧に見えます。しかし、iOS 5 では、まるでボタンが高くなったかのように、背景画像が繰り返され始めます。

iOS5:

iOS5版

iOS6:

iOS6版

使用される画像 (サイズを強調するために色付きの背景を使用)。

戻るボタンの画像

iOS 5 で戻るボタンを正しく表示するのを手伝ってくれる人はいますか?

編集:

を使用しない場合の結果は次のとおりですresizableImageWithCapInsets:

resizableImage のない iOS 5

4

3 に答える 3

1

Retina ディスプレイで画像を使用する場合は、画像を@2x:で後置します"arrow-back-button@2x"

のカテゴリを作成して、UIImageこのインスタンス メソッドを追加してみてください。

 (UIImage*)resizableImageWithLeftCapWidth:(NSInteger)leftCapWidth topCapHeight:            (NSInteger)topCapHeight </b>{
UIImage *image = nil;    
float osVersion = [[[UIDevice currentDevice] systemVersion] floatValue];
if (osVersion < 6.0) {
    image = [self stretchableImageWithLeftCapWidth:leftCapWidth topCapHeight:topCapHeight];
} else {
    UIEdgeInsets edgeInsets = UIEdgeInsetsMake(topCapHeight, leftCapWidth, topCapHeight, leftCapWidth);
    image = [self resizableImageWithCapInsets:edgeInsets];
}
return image;
 }

iOS6で修正されたiOS 5のバグがあると思います

于 2013-07-11T08:30:30.863 に答える