UIToolbar
iPhone アプリケーションでの背景画像を設定したいと考えています。
現在、私はUIColor
のを使用して設定していinitWithPatternImage:
ます。
しかし、それは私が望むことをしていません。
他の解決策をお勧めします。
UIToolbar
iPhone アプリケーションでの背景画像を設定したいと考えています。
現在、私はUIColor
のを使用して設定していinitWithPatternImage:
ます。
しかし、それは私が望むことをしていません。
他の解決策をお勧めします。
カスタムクラスを作成する必要はありません。以下のように、UIToolBarにカテゴリを追加できます。
@implementation UIToolbar (UIToolbarCategory)
- (void)drawRect:(CGRect)rect {
UIColor *color = [UIColor colorWithRed:0.547 green:0.344 blue:0.118 alpha:1.000]; //whatever goes well with your background image.
UIImage *img = [UIImage imageNamed: @"your-navbar-img.png"];
[img drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
[img release];
self.tintColor = color;
[super drawRect:rect];
}
@end
私はテストしました、そしてそれはうまく働いています。
PS:昨夜4.3でテストしましたが、期待どおりに機能しませんでしたが、4.2では正常に機能します。理由はまだわかりません。正しいスニペットが見つかったら更新します。
4.3以降では、UIToolbarをサブクラス化する必要があります。またはUINavigationBarカテゴリの追加はサポートされていません。次のコードは4.3で動作します
#import <UIKit/UIKit.h>
@interface MyAppToolBar : UIToolbar{
}
@end
@implementation MyAppToolBar
- (void)drawRect:(CGRect)rect {
[super drawRect:rect];
UIColor *color = [UIColor colorWithRed:0.547 green:0.344 blue:0.118 alpha:1.000]; //wood tan color
UIImage *img = [UIImage imageNamed: @"your-navbar-img.png"];
[img drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
[img release];
self.tintColor = color;
}
@end
制限の問題は、すべてのXIBファイルにあるすべてのUIToolbarオブジェクトのカスタムクラスを変更する必要があることです。また、アプリのスタイルに合わせてUIImagePickerControllerを開いても、ナビゲーションバーには影響しません。
または、カスタム クラスを作成し、それを (インターフェイス ビルダーを介して) コントロールに割り当て、内部で drawRect メソッドを実装することもできます...
お気に入り
- (void)drawRect:(CGRect)rect {
UIImage *image = [UIImage imageNamed: @"CustomImage.png"];
[image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
}
この最近の質問を参照してください:UINavigationBarの上にカスタムロゴがありますか?