Удаление кнопки отмены в UIImagePickerController? - PullRequest
0 голосов
/ 03 января 2012

Я разрабатываю приложение для ios 5. Мне нужно удалить кнопку отмены на UIImagePickerController. Я искал эту проблему на форуме, но не получил точного ответа. Может ли кто-нибудь помочь мне с этим?

Ответы [ 7 ]

2 голосов
/ 03 января 2012

Это потому, что удалить эту кнопку отмены невозможно. Это встроенная функция, и вы не можете вносить в нее изменения.

1 голос
/ 28 июня 2013

Я дам лучший метод для достижения этой цели:

  • Сначала создайте подкласс UiImagePickerController
  • в подклассе отвечает на метод UINavigationBarDelegate
    - (BOOL)navigationBar:(UINavigationBar *)navigationBar shouldPushItem:(UINavigationItem *)item

вам не нужно ничего делать, например устанавливать делегата или добавлять протокол, просто переопределите метод внутри вашего пользовательского UIImagePcikerController.

  • в этом методе вернуть NO для элемента отмены (который является первым)
0 голосов
/ 10 августа 2018

Swift версия, совместимая 4 +

Чтобы удалить панель навигации:

imagePicker.view.subviews
            .filter { $0.isKind(of: UINavigationBar) }
            .map { $0.isHidden = true }

только для удаления кнопок:

imagePicker.view.subviews
            .filter { $0.isKind(of: UIButton) }
            .map { $0.isHidden = true }

Вуаля

0 голосов
/ 16 ноября 2016

Это скроет саму панель навигации вместе с Cancel и Title

    let videoPicker = UIImagePickerController()
    for view in videoPicker.view.subviews {
        if let navBar = view as? UINavigationBar {
            navBar.isHidden = true
        }
    }

Если вы хотите удалить только кнопку отмены, копайте глубоко в navBar

0 голосов
/ 29 мая 2012

Нет способа удалить только кнопку отмены. UIImagePickerController предоставляет свойство showCameraControls, которое скрывает нижнюю панель с кнопкой отмены и кнопкой камеры, а также элементы управления для вспышки, HDR и зеркальной камеры, предоставляя вам только предварительный просмотр камеры.

Если вы хотите предоставить опыт без кнопки отмены, вам нужно создать наложение камеры на то, что вам нужно.

Предполагая, что у вас есть код, вызывающий UIImagePickerController, вы можете отключить элементы управления камерой следующим образом:

UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
[imagePicker setShowsCameraControls:NO];

Предполагая, что вы наложите его на свой собственный вид без кнопки отмены, вы добавите это (при условии, что у вас есть UIView с именем cameraOverlay:

[imagePicker setCameraOverlayView:cameraOverlay];
0 голосов
/ 03 января 2012

Я сделал это с ELCImagePickerController

0 голосов
/ 03 января 2012

Когда вы представляете UIImagePickerView, попробуйте ввести следующий код

for (UIView *subview in view.subviews) {
    NSLog(@"subviews=%@",subview);
    NSString *className = [NSString stringWithFormat:@"%@", [subview class]];
}

С помощью приведенного выше кода вы можете получить навигационный контроллер, используемый для отображения кнопки отмены. Как только вы получите навигационный контроллер Установите его левую сторону на ноль.

Я не использовал его, но надеюсь, что он может вам помочь

...