Я мог упустить что-то очень очевидное, но запуск приложения, скомпилированного для watchOS 5 на симуляторе Apple Watch Series 4, всегда приводит к тому, что contentSafeAreaInsets и systemMinimumLayoutMargins возвращают ноль (ноль для левого/правого/верхнего/нижнего).
Я попытался создать пример проекта на случай, если в моем приложении было что-то странное, но не повезло.
В документах указано:
Встроенные в систему контейнеры и элементы управления автоматически используют вставки области, защищенной от содержимого; однако, если вы создаете собственный пользовательский интерфейс с помощью SpriteKit или SceneKit, вы должны проверить contentSafeAreaInsets и systemMinimumLayoutMargins и соответствующим образом расположить свой интерфейс.
Итак, я попытался добавить сцену SceneKit в раскадровку, но это не дало никакого эффекта, даже при запуске всех перестановок параметров «полноэкранный» и «фиксированный по краям экрана», включенных и отключенных:
Изменить: если я запускаю приложение в фоновом и переднем плане, значения сообщаются успешно, что заставляет меня поверить, что это может быть ошибка в watchOS, если нет обходного пути. Кажется неразумным ожидать, что пользователь будет запускать приложение в фоновом и переднем плане, чтобы получить правильное поведение.