2012-07-03 2 views
0

Я пытаюсь покрасить полоски в виде камеры черного цвета. До сих пор ни один из нижеперечисленных подходов не работал. Есть два вида, которые я хочу изменить, первый - с иконкой камеры и «отменить», второй - с кнопками «пересдать» и «использовать». Есть идеи?Как изменить цвет бара в UIImagePicker?

- (void)openCamera { 
    UIImagePickerController *picker = [[UIImagePickerController alloc] init]; 
    picker.delegate = self; 
    picker.sourceType = UIImagePickerControllerSourceTypeCamera; 
    picker.navigationBar.barStyle = UIBarStyleBlackOpaque; 
    picker.toolbar.barStyle = UIBarStyleBlackOpaque; 
    picker.navigationBar.tintColor = [UIColor blackColor]; 
    [self presentModalViewController:picker animated:NO]; 
} 

- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated 
{ 
    UIImagePickerController *picker = (UIImagePickerController *)navigationController; 
    if((picker)&&(picker.sourceType == UIImagePickerControllerSourceTypeCamera)) 
    { 
     picker.navigationController.navigationBar.barStyle = UIBarStyleBlackOpaque; 
     picker.navigationController.toolbar.barStyle = UIBarStyleBlackOpaque; 
     picker.navigationBar.tintColor = [UIColor blackColor]; 
    } 
} 

ответ

2

Возможно, вам повезло, используя UIAppearance. Посмотрите на documentation.

+0

Очень приятно, смог изменить все UIToolbars и UINavigationBars, к сожалению, UIImagePicker, похоже, использует что-то еще. –

+0

Хм ... интересный. У меня создалось впечатление, что он использует 'UINavigationController', который будет иметь свой собственный' UINavigationBar' ... – Jasarien

+0

Вы пробовали настроить стиль бара на 'UIBarStyleDefault' и использовать' tintColor'? – Jasarien

0

UIImagePickerControllershowsCameraControls и cameraOverlayView для использования пользовательского вида UIImagePickerController. Установка значения showsCameraControls NO будет скрывать все на UIImagePickerController, но просмотр камеры. cameraOverlayView позволяет вам просматривать собственный вид камеры. Затем вы можете создать представление со своей нижней панелью, своими кнопками и ... и поставить ее перед UIImagePicker.

UIView *overlayView = [[UIView alloc] init]; 
/* Customize overlayView with your bottomBar and button */ 
UIImagePickerController imagePickerController = [[UIImagePickerController alloc] init]; 
/* Configure your UIImagePickerController for picture and/or video */ 
imagePickerController.showsCameraControls = NO; //Must be set to NO if you want to use the cameraOverlayView 
imagePickerController.cameraOverlayView = overlayView; 
overlayView = nil; 

К сожалению, с помощью этого метода вы должны восстановить все кнопки оригинального UIImagePickerController зрения (кнопка режима вспышки, кнопка опции, ...), если вы хотите использовать их, и вы должны создать свой собственный контроллер навигации, чтобы перейти к просмотру с помощью кнопок «пересдать» и «использовать». Однако это очень просто реализовать.

+1

Как бы я мог реализовать навигационный контроллер с кнопками просмотра и «пересдать» и «использовать»? – bmueller

Смежные вопросы