3

UIToolbariPhone アプリケーションでの背景画像を設定したいと考えています。

現在、私はUIColorのを使用して設定していinitWithPatternImage:ます。

しかし、それは私が望むことをしていません。

他の解決策をお勧めします。

4

3 に答える 3

4

カスタムクラスを作成する必要はありません。以下のように、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を開いても、ナビゲーションバーには影響しません。

于 2011-01-30T10:45:38.027 に答える
3

または、カスタム クラスを作成し、それを (インターフェイス ビルダーを介して) コントロールに割り当て、内部で drawRect メソッドを実装することもできます...

お気に入り

- (void)drawRect:(CGRect)rect {
    UIImage *image = [UIImage imageNamed: @"CustomImage.png"];
    [image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
}
于 2010-05-17T11:29:57.157 に答える
1

この最近の質問を参照してください:UINavigationBarの上にカスタムロゴがありますか?

于 2010-04-17T11:11:06.723 に答える