1

UINavigationBar に darkGrayColor テキストの白い背景を使用しています

[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"uinavigationcontrollerbackground"] forBarMetrics:UIBarMetricsDefault];
[[UINavigationBar appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:font,UITextAttributeFont ,[UIColor darkGrayColor], UITextAttributeTextColor,  [UIColor whiteColor], UITextAttributeTextShadowColor, nil]];

これは見栄えがしますが、アプリ全体で次のように定義されたボタンがあります。

self.searchButton =[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemSearch target:self action:@selector(searchProducts)];

次のようにしていたデフォルトの blakc バックグラウンド ルックを削除しました。

[[UIBarButtonItem appearance] setBackgroundImage:[UIImage imageNamed:@"uibarbuttonbackground"]  forState:UIControlStateNormal
                                          barMetrics:UIBarMetricsDefault];

これはただの白い四角です。

私のアイコンはまだ明るい灰色の影が付いた白いままですが、とにかくこれらのデフォルトのアイコンを変更するにはどうすればよいですか?

4

2 に答える 2

0

背景を変更しようとするとUIBarButtonSystemItemCamera、何も機能しませんでした。これらのデフォルトのシステム ボタン タイプ ( UIBarButtonSystemItem) には既に背景画像が付いていると思いますので、それを変更しても問題ありません。

カスタム ビューを作成し、それを使用してバー ボタンを初期化することをお勧めします。完璧なコードではありませんが、お役に立てば幸いです。

 UIImage *image = [UIImage imageNamed:@"icon.png"];
    UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
    [button setBackgroundImage: [image stretchableImageWithLeftCapWidth:7.0 topCapHeight:0.0] forState:UIControlStateNormal];
    button.frame= CGRectMake(0.0, 0.0, image.size.width, image.size.height);
    [button addTarget:self action:@selector(takePicture:)    forControlEvents:UIControlEventTouchUpInside];

    UIView *v=[[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, image.size.width, image.size.height) ];
    [v addSubview:button];


    UIBarButtonItem *barItem = [[[UIBarButtonItem alloc] initWithCustomView:v] autorelease];
于 2013-11-12T18:50:52.577 に答える