私は、iOS 5.0以降のプラットフォームを対象とした最初のiOSアプリケーションを作成しています。私はアプリケーションのUIをカスタマイズするためにUIAppearance
プロトコルを使用しています。UIImage resizableImageWithCapInsets:期待どおりに動作しない
UIBarButtonItem
の背景をアプリケーション全体で変更しようとしています。私のUIBarButtonItem
のサイズがテキストやアイコンに応じて変更される可能性があるので、私はUIImage resizableImageWithCapInsets:
を自分の背景pngと利用しようとしています。
私が最初に必要としたコードはRay Wenderlichです。前述のチュートリアルで使用されている画像に非常に近い画像で、同じ正確なコードを使用すると、私は奇妙な結果を得ています。ココアタッチの経験がないだけかもしれません。
ここに私が使用しているコードがあります。
DreamsAppDelegate.m - customizeAppearance:
UIImage *btnBg = [[UIImage imageNamed:@"navBarButton-bg"]
resizableImageWithCapInsets:UIEdgeInsetsMake(0, 6, 0, 6)];
[[UIBarButtonItem appearance] setBackgroundImage:btnBg
forState:UIControlStateNormal
barMetrics:UIBarMetricsDefault];
ここで私は
とここを使用しようとしているPNGの背景画像は(シミュレータで)結果です
ありがとう:
だから、このコードを使用します。投稿された画像は@ 2xです。だから私は測定値を(0,3,0,3)に減らすべきですか?画像の中央を1ピクセル幅にする必要があると言っていますか?私はその理由を理解していますが、その後のチュートリアルでは、30px x 40pxのイメージがあり、自分と同じスタイルのグラデーションを使用しています。これは素晴らしい機能です(UIEdgeInsetsMakeを使用しています。私の角の半径のために)。 –
これはトリックです:上と下には0を使用できます_背景画像はナビゲーションバーボタンと同じ高さです。その空間を既存のグラデーションで塗りつぶすだけです。あなたの画像は網膜のナビゲーションボタンの高さではありませんので、その高さを埋めるために伸ばしたり、繰り返したりします。トップとボトムのキャップサイズ(1番目と3番目の引数)を指定する必要があります。 '(7、3、7、3)'で始まります。これはいくつかのストライピングを残しますが、うまくいけば何が起こっているのか明確な考えを与えるでしょう。 – Dondragmer
ああ、もう少し意味があります。網膜のNavBarボタンのサイズは?私は網膜サイズのPSDファイルから自分のUI要素をスライスしているので、もしpsdファイル上でnavBarボタンbgを大きくして、必要なものを得るためにエクスポートする必要があれば、それは簡単になります。 –