Вы можете сказать камере iPhone, чтобы она фокусировалась на ближних или дальних объектах, выполнив:
try! device.lockForConfiguration()
defer { device.unlockForConfiguration() }
device.autoFocusRangeRestriction = .near
Но независимо от того, установил я ближний, дальний или не задал его, нет никакой разницы.Я провел тестирование на двух разных телефонах - iPhone XS и X - и дал его двум разным коллегам для тестирования на случай, если я что-то делаю не так.
Мы тестировали сцены, в которых часть кадра была рядом, а остальные - далеко.и днем, и ночью.Мы ожидали, что установка ограничения диапазона на ближнюю заставляет ближнюю часть быть в фокусе, а также для дальней.Но это никогда не работает.Почему?
В случае, если это имеет значение, я изменяю ограничение диапазона после того, как устройство было добавлено в сеанс, и сеанс запущен.
Я также попытался принудительно запустить алгоритм AFпосле установки ограничения диапазона, выполнив device.focusMode = .continuousAutoFocus
, но это не имеет значения.Также не device.focusMode = .autoFocus