の色を変更できましたnavigation bar
が、ボタンの色はまだ黒です。ボタンの色も変更する方法はありますか?下の画像を参照してください。
更新: 申し訳ありませんが、著作権の問題により画像を削除する必要がありました。
の色を変更できましたnavigation bar
が、ボタンの色はまだ黒です。ボタンの色も変更する方法はありますか?下の画像を参照してください。
更新: 申し訳ありませんが、著作権の問題により画像を削除する必要がありました。
カスタムイメージなしでは不可能です。
ただし、ナビゲーション コントローラーを作成したらすぐに色合いを変更する必要があります。
UIImagePickerController *pickerImg = [[UIImagePickerController alloc] init];
pickerImg.navigationBar.barStyle = UIBarStyleBlackOpaque; // Or whatever style.
// or
pickerImg.navigationBar.tintColor = [UIColor whateverColor];
@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]];
}
}
- (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;
}
}
変更したいビューなど、すべてのビューに表示されるボタンの色に影響を与えたい場合は、次のようにします。
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]];
ナビゲーション バーを非表示にし、imageview を使用してカスタム ナビゲーション バーを作成し、その上に 2 つのボタンを配置することができます。これにより、ボタンのイメージ/色、およびイメージ ビューを必要に応じて変更できます。
ナビゲーション バーを非表示にする場合:
self.navigationController.navigationBarHidden=YES;
次にXIBで:高さ44のビューを作成し、その上にimageviewを配置し、2つのボタンと1つのラベルを配置します。
これで問題が解決することを願っています。
BarButtonItem の UIButtonTypeCustom ボタンを定義する必要があります。
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
UIBarButtonItem *yourBarButton = [[UIBarButtonItem alloc] initWithCustomView:button];
詳細については、次の記事をご覧ください: UIBarButtonItem with color?
iOS 5 以降の新しいUIAppearance
API を使用して、目的のカスタマイズを実現できます。このチュートリアルでは、基本的にその方法を示します。