我设法改变了navigation bar
的颜色,但按钮的颜色仍然是黑色。有没有办法改变按钮的颜色?见下图。如何更改UIImagePickerController导航栏上的按钮颜色?
UPDATE:由于版权问题,抱歉不得不删除图像。
我设法改变了navigation bar
的颜色,但按钮的颜色仍然是黑色。有没有办法改变按钮的颜色?见下图。如何更改UIImagePickerController导航栏上的按钮颜色?
UPDATE:由于版权问题,抱歉不得不删除图像。
没有您的自定义图像是不可能的。
,但你应该尽快创建导航控制器改变色调颜色:
UIImagePickerController *pickerImg = [[UIImagePickerController alloc] init];
pickerImg.navigationBar.barStyle = UIBarStyleBlackOpaque; // Or whatever style.
// or
pickerImg.navigationBar.tintColor = [UIColor whateverColor];
你必须定义一个UIButtonTypeCustom按钮为您BarButtonItem。
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
UIBarButtonItem *yourBarButton = [[UIBarButtonItem alloc] initWithCustomView:button];
欲了解更多信息,看看这个帖子:UIBarButtonItem with color?
您可以隐藏naviagtion栏,并通过使用ImageView的创建自定义navagtion酒吧和放在it.By这样做,你2个按钮可以按照您的要求更改按钮的图像/颜色以及图像视图。
用于隐藏导航栏:
self.navigationController.navigationBarHidden=YES;
然后在XIB: 创建44的高度,在其上发生的ImageView的视图,并放置2按钮并在其上1个标签。
希望这会解决您的问题。
这不适用于UIImagePickerController –
是的你是对的,你不能改变uiimagepickerController按钮的颜色,但你可以通过使用覆盖控制器类来创建一个自定义的imagePickerController。作为参考,您可以检查此链接:http://www.devsrealm.com/objective-c/custom-camera-app-1/ – megha
覆盖视图仅适用于相机,不适用于Photo库。 –
@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]];
}
}
+1有趣的方法,但我不认为这是要走的路。 –
@AnkitSrivastava你有没有试过这种方法? – Singh
复杂的我的情况下,因为我照片库钻入子文件夹,我不能使用tintColor,因为我的目标是ios 4.0及以上。 –
如果你想影响出现在如你希望改变的人的所有视图按钮的颜色,然后只需使用以下命令:
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]];
我希望这将有助于您!
第1步:
UIImagePickerController *picker = [[UIImagePickerController alloc] init];
picker.delegate = self;
[self presentViewController:picker animated:YES completion:NULL];
第2步:
/* Status bar color */
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault];
/* Left button */
navigationController.navigationBar.tintColor = [UIColor blackColor];
/* Right button color */
navigationController.navigationBar.topItem.rightBarButtonItem.tintColor = [UIColor blackColor];
如果你不介意使用在整个应用程序相同的风格,使用外观@Bourne建议:
let font = UIFont(name:"Montserrat-Bold", size:16)!
let attributes: LTDictStrObj = [
NSForegroundColorAttributeName: UIColor.whiteColor(),
NSFontAttributeName: font,
]
UIBarButtonItem.appearance().setTitleTextAttributes(attributes, forState: UIControlState.Normal)
如果您使用像我这样的白色,您还可以更改导航栏的背景颜色:
picker.navigationBar.barTintColor = .redColor()
- (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;
}
}
如何添加一些文字说明或信息,说明您为了使其工作所做的更改?只是粘贴代码没有太大意义,或者你问的是要遍历代码的每一行并吞下它? –
一个内胆使用UIAppearance:
[[UINavigationBar appearanceWhenContainedInInstancesOfClasses:@[[UIImagePickerController class]]] setTintColor:[UIColor redColor]];
你尝试过这么远吗?你如何设置导航条的背景?还没有尝试过,但'UIAppearance'出现在我的脑海里... – Pfitz
@Pfitz UIAppearance只能用于iOS 5.0及以上版本,但我的目标是ios 4.0 –