iOS. Приемы программирования
Шрифт:
Если в вашем приложении недостаточно просто определить, какая камера имеется на устройстве, можно получить и другие настройки, воспользовавшись классом UIImagePickerController. Одна из этих настроек позволяет узнать, есть ли на камере данного устройства функция вспышки. Метод класса isFlashAvailableForCameraDevice:, относящийся к классу UIImagePickerController, применяется, чтобы выяснить, на какой камере доступна функция вспышки — передней или задней. Не забывайте также, что метод класса isFlashAvailableForCameraDevice:, относящийся к классу UIImagePickerController, сначала проверяет доступность запрошенной камеры, а
Теперь, если воспользоваться всеми методами, написанными в этом разделе, и протестировать их, например, в делегате нашего приложения, мы сможем увидеть результаты на различных устройствах:
Вот
The front camera is available. // передняя камера доступна
The front camera is not equipped with a flash // передняя камера
// не оснащена функцией вспышки
The rear camera is available. // задняя камера доступна
The rear camera is equipped with a flash // задняя камера оснащена
, // функцией вспышки
The camera supports taking photos. // камера позволяет делать
, // фотоснимки
The camera supports shooting videos. // камера позволяет
// записывать видео
Вот вывод того же кода при запуске на симуляторе iPhone:
The front camera is not available. // передняя камера недоступна
The rear camera is not available. // задняя камера недоступна
The camera does not support taking photos // камера не поддерживает съемку фотографий
The camera does not support shooting videos // камера не поддерживает съемку видео
13.2. Фотографирование с помощью камеры
Постановка задачи
Требуется попросить пользователя сделать снимок (фотография выполняется камерой устройства). После того как пользователь сделает снимок, необходимо получить доступ к этой фотографии.
Решение
Инстанцируйте объект типа UIImagePickerController и представьте его пользователю как модальный вид в актуальном контроллере вида. Вот объявление этого контроллера вида: