2017-02-14 9 views
0

Всякий раз, когда я использую приложение, и он просит фотографии, что-то вроде этого выскакивает: enter image description hereSwift - Сфотографировать или выбрать существующий

Выполните одно из y'all есть ссылка на то, что на самом деле происходит Вот? Есть ли встроенная функция или библиотека с открытым исходным кодом, которая используется для этого? Кажется, я не могу найти каких-либо конкретных ресурсов в сетях.

Спасибо!

+0

Похож на ваше основное модальное предупреждение. Ничего особенного. * Реальный вопрос - это то, что вы видите, когда вы tp «Take Photo» или «Choose Existing» - они используют UIImagePickerController? – dfd

ответ

2

На скриншоте вы видите UIAlertController с двумя действиями:

let actionSheet = UIAlertController(title: nil, message: nil, preferredStyle: .actionSheet) 
let cameraAction = UIAlertAction(title: "Take Photo", style: .default, handler: nil) 
let photoLibraryAction = UIAlertAction(title: "Choose Existing", style: .default handler: nil) 

actionSheet.addAction(camerAction) 
actionSheet.addAction(photoLibraryAction) 

Чтобы получить доступ к библиотеке фотографий или использовать камеру для съемки новой картины, вы можете захотеть взглянуть на UIImagePickerController.

+1

То, что мне было нужно - это UIAlertController. Спасибо! – Ryan

0

Кажется, что библиотека представляет UIAlertController с UIAlertControllerStyle перечислением actionSheet. В зависимости от выбора, он затем создает код UIImagePickerController с sourceTypephotoLibrary или camera.

Это стандартное поведение для получения изображения для пользователя.

1

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

let actionController = UIAlertController(title: nil, message: nil, preferredStyle: .actionSheet) 

if UIImagePickerController.isSourceTypeAvailable(.camera) { 
    let action = UIAlertAction(title: "Take Photo", style: .default, handler: { _ in 
     print("User tapped 'Take Photo'") 
    }) 
    actionController.addAction(action) 
} 

Вам также нужно создать еще одну акцию для «Выберите существующий» и кнопку «Отмена».

Затем просто покажите контроллер действия с вашего текущего контроллера.

+0

Спасибо! Это очень полезно. – Ryan