Следующий код создает всплывающий контроллер с UIImagePickerController
, который использует cameraOverlayView для отображения пользовательской кнопки, открывающей библиотеку фотографий.
Это прекрасно работает на iOS 5, но на iOS 6 кнопка «Сделать фото» отсутствует, вместо этого есть еще один переключатель между передней и задней кнопками камеры!
Смотрите следующий скриншот -
Это код — UIImagePickerControllerSourceType sourceType = UIImagePickerControllerSourceTypeCamera;
if ( ![UIImagePickerController isSourceTypeAvailable: sourceType] ) {
[self openLibrary: sender];
return;
}
UIImagePickerController *picker = [[UIImagePickerController alloc] init];
picker.delegate = self;
picker.sourceType = sourceType;
UIButton *libraryButton = [UIButton buttonWithType: UIButtonTypeCustom];
libraryButton.frame = CGRectMake(12, 12, self.photoLibraryIcon.size.width, self.photoLibraryIcon.size.height);
[libraryButton setImage: self.photoLibraryIcon forState: UIControlStateNormal];
[libraryButton addTarget: self action: @selector(openLibrary:) forControlEvents: UIControlEventTouchUpInside];
[picker.cameraOverlayView addSubview:libraryButton];
__imagePickerPopoverController = [[UIPopoverController alloc] initWithContentViewController: picker];
self.imagePickerPopoverController.delegate = self;
[self.imagePickerPopoverController presentPopoverFromRect: CGRectMake(self.center.x - 5, self.center.y - 5, 10, 10)
inView: self.superview
permittedArrowDirections: UIPopoverArrowDirectionAny
animated: YES];
Если я удалю [picker.cameraOverlayView addSubview:libraryButton]
, он будет работать нормально, но тогда моя пользовательская кнопка исчезнет (как и ожидалось).
Так почему же назначение cameraOverlayView
изменяет нижнюю панель инструментов?
Любая подсказка о том, как вернуть кнопку «Сделать фото» на iOS 6?