Недавно Apple выпустила Vision Pro, и мне посчастливилось стать его счастливым обладателем. С тех пор я активно занимался разработкой своего приложения и изучением различных приложений и тенденций в Vision Pro App Store.
Наверняка вы замечали, что при просмотре видео или фото фон за окном затемняется, в настройках это называется "автозатемнение". Чтобы получить тот же эффект, вам нужно использовать .preferredSurroundingsEffect(.systemDark)
в вашем представлении, и тогда пространство вокруг пользователя потемнеет, а ваше окно останется ярким, это поможет сохранить фокус на содержимом.
При просмотре видео или контента вы хотите, чтобы пользователь не отвлекался и создавал эффект парящего в воздухе окна, для этого Apple предоставила нам возможность скрыть нижнюю панель окна, которая используется для перемещения или закрытия. текущее окно. С помощью .persistentSystemOverlays(.hidden)
вы можете скрыть эту панель управления в своем окне, она исчезнет с анимацией по умолчанию и появится только тогда, когда пользователь взаимодействует с окном.
Если вы откроете стандартное приложение Apple TV и включите фильм, вы заметите, что окно фильма имеет отражение, которое меняется с каждым кадром, создавая более захватывающий эффект. Чтобы получить эффект свечения вокруг вашего видео, вам нужно использовать VideoPlayerComponent
и включить isPassthroughTintingEnabled
, тогда эффект будет такой же, как в Apple TV или HBO Max. Вот что говорится в документации:
Это делается для того, чтобы во время воспроизведения видео включить сквозную тонировку, которая отображается вокруг видео, беря средний цвет кадра и окрашивая проходную часть этим цветом, чтобы подчеркнуть видео.
onAppear { guard let windowScene = UIApplication.shared.connectedScenes.first as?UIWindowScene else { return } windowScene.requestGeometryUpdate(.Vision(resizingRestrictions: UIWindowScene.ResizingRestrictions.none)) }
windowScene.requestGeometryUpdate(.Vision(size:, minimumSize:, maximumSize:, resizingRestrictions:))
Если ваше приложение использует иммерсивное пространство и вы не хотите, чтобы пользователь видел свои руки, или вы хотите заменить их виртуальными руками, как это сделано в AmazeVR, то вам нужно использовать .upperLimbVisibility(.hidden)
Я уверен, что вы видели в приложениях VisionOS боковые панели, похожие на TabBars
. Apple представила новый метод View
для VisionOS, который позволяет «расширять» окно и добавлять орнаменты по обе стороны от него.
.ornament( visibility: .visible, attachmentAnchor: .scene(.bottom), contentAlignment: .center ) { HStack { Button("Play", systemImage: "play.fill") { } Button("Stop", systemImage: "stop.fill") { } } .labelStyle(.iconOnly) .padding(.all) .glassBackgroundEffect() }