8

の色を変更できましたnavigation barが、ボタンの色はまだ黒です。ボタンの色も変更する方法はありますか?下の画像を参照してください。

更新: 申し訳ありませんが、著作権の問題により画像を削除する必要がありました。

4

10 に答える 10

20

カスタムイメージなしでは不可能です。

ただし、ナビゲーション コントローラーを作成したらすぐに色合いを変更する必要があります。

 UIImagePickerController *pickerImg = [[UIImagePickerController alloc] init];
pickerImg.navigationBar.barStyle = UIBarStyleBlackOpaque; // Or whatever style.
// or
pickerImg.navigationBar.tintColor = [UIColor whateverColor];
于 2012-09-17T10:06:46.163 に答える
1

@Ankitナビゲーションバーからサブビューを取得してから、目的の色を設定してみてください。このアプローチを使用して、検索バーのキャンセルボタンの色を設定しました。キャンセルボタンのサイズは48*30で、サブビュー配列を使用して目的の色を設定できます。よくわかりませんが、これでうまくいくかもしれません。以下は、検索バーのキャンセルボタンの色を設定するために使用したコードです。

NSArray *arrySearchSubviews=[searchBarFrnds subviews];
for (UIButton *btn in arrySearchSubviews) 
{
   CGRect rect=btn.frame;
    NSLog(@"width %f",rect.size.width);
    NSLog(@"height %f",rect.size.height);
    if (rect.size.width==48 ) 
    {
        [btn setTintColor:[UIColor colorWithRed:0 green:0.403f blue:0.4f alpha:1.0f]];
    }
}
于 2012-09-17T11:26:30.260 に答える
1
- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated {
    if ([navigationController isKindOfClass:[UIImagePickerController class]]) {
        if ([[UIDevice currentDevice] systemVersion].floatValue >= 8.0) {
            [viewController.navigationController.navigationBar setBarTintColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"navbar1"]]];
        } else {
            [viewController.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"navbar2"] forBarMetrics:UIBarMetricsDefault];
        }
    viewController.navigationController.navigationBar.tintColor = [UIColor whiteColor];
    UILabel *titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 100, 40)];
    titleLabel.textColor = [UIColor whiteColor];
    titleLabel.textAlignment = NSTextAlignmentCenter;
    titleLabel.font = [UIFont boldSystemFontOfSize:18.0f];
    titleLabel.text = @"photos";
    [viewController.navigationItem setTitleView:titleLabel];
    viewController.edgesForExtendedLayout = UIRectEdgeNone;
    }
}
于 2015-07-07T04:14:55.273 に答える
1

変更したいビューなど、すべてのビューに表示されるボタンの色に影響を与えたい場合は、次のようにします。

UIBarButtonItem *searchBarButton = [UIBarButtonItem appearanceWhenContainedIn:[UISearchBar class], nil];
[searchBarButton setTintColor:[UIColor colorWithRed:138.0/255.0 green:183.0/255.0 blue:64.0/255.0 alpha:1.0]];
于 2013-03-26T17:31:03.750 に答える
1

ナビゲーション バーを非表示にし、imageview を使用してカスタム ナビゲーション バーを作成し、その上に 2 つのボタンを配置することができます。これにより、ボタンのイメージ/色、およびイメージ ビューを必要に応じて変更できます。

ナビゲーション バーを非表示にする場合:

 self.navigationController.navigationBarHidden=YES;

次にXIBで:高さ44のビューを作成し、その上にimageviewを配置し、2つのボタンと1つのラベルを配置します。

これで問題が解決することを願っています。

于 2012-09-17T10:54:51.987 に答える
0

BarButtonItem の UIButtonTypeCustom ボタンを定義する必要があります。

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
UIBarButtonItem *yourBarButton = [[UIBarButtonItem alloc] initWithCustomView:button];

詳細については、次の記事をご覧ください: UIBarButtonItem with color?

于 2012-09-17T10:11:57.163 に答える
0

iOS 5 以降の新しいUIAppearanceAPI を使用して、目的のカスタマイズを実現できます。このチュートリアルでは、基本的にその方法を示します。

于 2012-09-17T09:39:08.817 に答える