次のコードを使用して、UINavigationBarの戻るボタンをカスタマイズしています。ただし、画像が引き伸ばされすぎると、次のような画像になります。これを防ぐ方法を教えてください。
ありがとう!
[[UIImage imageNamed:@"back_button"] stretchableImageWithLeftCapWidth:14 topCapHeight:0]
元の戻るボタンの画像:
次のコードを使用して、UINavigationBarの戻るボタンをカスタマイズしています。ただし、画像が引き伸ばされすぎると、次のような画像になります。これを防ぐ方法を教えてください。
ありがとう!
[[UIImage imageNamed:@"back_button"] stretchableImageWithLeftCapWidth:14 topCapHeight:0]
元の戻るボタンの画像:
の最小幅は、UIBarButtonItem
主に提供する画像のサイズによって決まります。左右の部分を左右のキャップとして使用できるように、画像の中央の列にタイル化可能な画像コンテンツが1ピクセルだけになるように、エディターから戻る矢印の画像をエクスポートする必要があります。
画像のとおり、画像は正しく引き伸ばされているようです。戻るボタンのフレームを確認するだけです。また、文字列「Profile」の末尾に空白がないかどうかを確認してください。
stretchableImageWithLeftCapWidth:topCapHeight
iOS5では非推奨です。
これはあなたの質問に答えません。それは単なるヒントです。
ノイズテクスチャのある画像があり、同じことをしたいと思っていました。私はついにこのソリューションにたどり着きました。これはあなたが望むことを正確に実行すると信じています(少なくともiOS 6では):
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] init];
UIImage *buttonBg = [[UIImage imageNamed:@"back-arrow.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 16, 0, 6)];
[backButton setBackButtonBackgroundImage:buttonBg forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
backButton.title = @"Back";
エッジインセットをカスタマイズして、伸びてはならない部分を除外できます。