#ios #swift #swiftui #watchos
#watchkit #swiftui #watchos-6
Вопрос:
Я не хочу отображать SwiftUI View
в полноэкранном watchOS
режиме (без кнопки отмены / возврата или часов)
Я попытался добавить a Sprite Kit Scene
в представление, а также установить .edgesIgnoringSafeArea(.all)
, но я все еще могу скрыть их или поместить представление под верхнюю панель.
Ответ №1:
Оказывается, это действительно «работает», даже с SwiftUI:
С помощью конструктора интерфейса: https://developer.apple.com/documentation/watchkit/wkinterfaceskscene/configuring_a_watchkit_scene_in_a_storyboard
Использование SwiftUI (watchOS 7):
@main
struct BitApp: App {
@SceneBuilder var body: some Scene {
WindowGroup {
ContentView()
.edgesIgnoringSafeArea(.all)
}
WKNotificationScene(controller: NotificationController.self, category: "myCategory")
}
}
Удалите все NavigationView
и используйте edgesIgnoringSafeArea
, и это работает!
Редактировать: это не приведет к удалению часов, так как они будут расположены в углу перед сценой SpriteKit.
Комментарии:
1. С Interface Builder, который работает только для SpriteKit или SceneKit, попробуйте и посмотрите. Я отредактировал свой ответ, чтобы отразить это.
2. Это должно быть общепринятым ответом.
Ответ №2:
Если это не игра, невозможно выделить пространство вверху, watchOS резервирует его, чтобы время всегда было видно пользователю.
Комментарии:
1. В раскадровке я могу выбрать «Полноэкранный режим» для просмотра. Неужели это просто невозможно в SwiftUI прямо сейчас?