我設法改變了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 –