私はiOSプログラミングにとても慣れていません。ツールバーの背景をカスタム画像に設定しようとしています。絵コンテも使っています。どうすればいいですか?UIキットフレームワークでUIToolbarを編集しますか?ストーリーボードで何かを変更する必要がありますか?
ありがとう、
私はiOSプログラミングにとても慣れていません。ツールバーの背景をカスタム画像に設定しようとしています。絵コンテも使っています。どうすればいいですか?UIキットフレームワークでUIToolbarを編集しますか?ストーリーボードで何かを変更する必要がありますか?
ありがとう、
UIToolbar
の組み込み-setBackgroundImage:forToolbarPosition:barMetrics:
メソッドを使用できます。
// portrait
[yourToolbar setBackgroundImage:[UIImage imageNamed:@"YourToolbarBkg-Portrait.png"] forToolbarPosition:UIToolbarPositionAny barMetrics:UIBarMetricsDefault];
// landscape
[yourToolbar setBackgroundImage:[UIImage imageNamed:@"YourToolbarBkg-Landscape.png"] forToolbarPosition:UIToolbarPositionAny barMetrics: UIBarMetricsLandscapePhone];
YourToolbarBkg-Portrait.png
ポートレートモードの場合、320x44bkgの画像になりますYourToolbarBkg-Landscape.png
横向きモードの場合、480x32bkgの画像になります。UIToolbarはUIViewから継承します。これは私のためにうまくいきました:
[topBar insertSubview:[[[UIImageView alloc] initWithImage:[UIImage imageNamed:BAR_BKG_IMG]] autorelease] atIndex:0];
更新しました
topBar------はuが使用しているUIToolBarのアウトレットです
このコードを使用して、UIToolBarを作成するクラスUIToolbarを実装します。さらに、ツールバーを使用してyruを教えてください。
UIToolBarを編集する代わりに、同じサイズとスキンのUIViewを好きなように作成してみませんか?あなたが新しいなら、それはもっと簡単でしょう。
または、UIToolbarをオーバーライドする場合:
@implementation UIToolbar (CustomImage)
- (void)drawRect:(CGRect)rect {
UIImage *image = [UIImage imageNamed: @"image.png"];
[image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
}
@end
ToolBarsとNavBarsの背景画像に適切な対応がありました。NavBarとToolBarの背景画像の設定は、一般的には簡単です。ただし、モーダルVCを提示している場合、なんらかの理由で、NavBarが追加され、背景画像を変更すると、サイズが2倍になります。高さを変更すると、奇妙な結果になります。
私の問題は、アプリ全体でNavControllerを使用していたところですが、その1つまたは2つの側面にモーダルビューが必要でした。十分に単純です。ただし、VCをスタックからポップするには、[完了]ボタンが付いたNavBarまたはToolBarタイプのヘッダーが必要でした。繰り返しますが、問題ではありません。ただし、アプリ内の他の場所と同じように表示するには、NavBarまたはToolBarが必要でした。
VCがモーダルに表示されているのを見て、ツールバーに落ち着きました。それで、私のツールバーは典型的なアップルブルーで座っていました。素晴らしいですが、各NavBarに黒く塗られた画像が使用されていた私のアプリの他の部分の外観はそうではありませんでした。iOS 5の外観プロキシを使用して、ツールバーの背景画像を変更しました。そして、これはうまくいきました。しかし、ツールバーで期待される比率とサイズのUIImageが正確にない限り、私はピクルスになりました。画像はまったく正しく見えませんでした。そこで、コンテンツモードを制御できるUIIMageViewを作成し、ツールバーにサブビューを挿入することにしました。
以下の私のコードを見てください。
UIImageView *toolbarImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:NAV_BAR_BACKGROUND]];
[toolbarImageView setFrame:[self.IBOToolBar bounds]];
[toolbarImageView setContentMode:UIViewContentModeScaleAspectFill];
[self.IBOToolBar insertSubview:toolbarImageView atIndex:1];
少し綿毛ですが、これが誰かがツールバーの画像を変更するのに役立つことを願っています。
NAV_BAR_BACKGROUNDは、次のように定義できます。
#define NAV_BAR_BACKGROUND @"navBarBlackMattDarkSquare.png"