watchOS 5 contentSafeAreaInsets всегда равен нулю

Я мог упустить что-то очень очевидное, но запуск приложения, скомпилированного для watchOS 5 на симуляторе Apple Watch Series 4, всегда приводит к тому, что contentSafeAreaInsets и systemMinimumLayoutMargins возвращают ноль (ноль для левого/правого/верхнего/нижнего).

Я попытался создать пример проекта на случай, если в моем приложении было что-то странное, но не повезло.

В документах указано:

Встроенные в систему контейнеры и элементы управления автоматически используют вставки области, защищенной от содержимого; однако, если вы создаете собственный пользовательский интерфейс с помощью SpriteKit или SceneKit, вы должны проверить contentSafeAreaInsets и systemMinimumLayoutMargins и соответствующим образом расположить свой интерфейс.

Итак, я попытался добавить сцену SceneKit в раскадровку, но это не дало никакого эффекта, даже при запуске всех перестановок параметров «полноэкранный» и «фиксированный по краям экрана», включенных и отключенных:

введите здесь описание изображения

Изменить: если я запускаю приложение в фоновом и переднем плане, значения сообщаются успешно, что заставляет меня поверить, что это может быть ошибка в watchOS, если нет обходного пути. Кажется неразумным ожидать, что пользователь будет запускать приложение в фоновом и переднем плане, чтобы получить правильное поведение.


person Kane Cheshire    schedule 11.11.2018    source источник
comment
У меня тоже такая же проблема... Вы когда-нибудь находили решение этой проблемы?   -  person Robbie    schedule 20.01.2020


Ответы (1)


Как он говорит:

Часы с диагональю 40 мм и 44 мм имеют закругленные углы, которые могут обрезать контент, выходящий за пределы экрана. Безопасная для содержимого область определяет область под строкой состояния, в которой отсутствуют закругленные углы.

Вероятно, вы запускаете приложение на другом симуляторе (38 мм?). На 38 и 42 мм углы не закруглены. Безель часов, конечно, закругленный, но аппаратный дисплей здесь квадратный.

Кроме того, эта документация может помочь:
Размеры экрана
Макет

person kelin    schedule 28.09.2019
comment
Нет, как я сказал в своем вопросе: ... запуск приложения, скомпилированного для watchOS 5, на симуляторе Apple Watch Series 4. Apple Watch Series 4 имеют размеры 40 мм и 44 мм, поэтому я не вижу, чем ваш ответ полезен. - person Kane Cheshire; 30.09.2019
comment
@KaneCheshire, хорошо, тогда покажи какой-нибудь код, где ты пытаешься получить вставки. Может быть, я мог бы дать лучший ответ. - person kelin; 30.09.2019