标签: visionos

如何检查设备是否为 Vision Pro - Xcode 15 Beta 4

我有一个视频分析应用程序,我正在尝试使其与visionOS 兼容。由于不允许使用相机而崩溃;Apple 只允许从照片导入视频。

因此,我需要在启动时检查设备是否运行visionOS来显示照片选择器而不是相机视图,类似于我现在使用的检查我是否在macCatalyst或iOS上:

#if targetEnvironment(macCatalyst)
   print("We are in macOS Catalyst")
#else
   print("We are in iOS")
#endif
Run Code Online (Sandbox Code Playgroud)

提前致谢。

xcode swift visionos

6
推荐指数
2
解决办法
2641
查看次数

如何获取visionOS中的窗口大小?

UIScreen.main.boundsVisionOS上有类似的东西吗?

\n

不幸的是,我有一些取决于屏幕尺寸的代码,并且使用硬编码值并不能真正解决问题。

\n

swift swiftui visionos

5
推荐指数
1
解决办法
1783
查看次数

检测沉浸式空间中的手势 VisionOs SwiftUI

我有一个沉浸式空间,我想向其中添加手势识别器。我希望能够在沉浸式空间中的任何位置检测捏/点击手势。

ImmersiveSpace(id: "FlappyImmersiveSpace") {     
    FlappySpace() 
}
Run Code Online (Sandbox Code Playgroud)

我尝试过这个,但没有成功。

ImmersiveSpace(id: "FlappyImmersiveSpace") {
    FlappySpace()
        .gesture(
            TapGesture()
                .onEnded({ _ in
                    print("TAPPED")
                })
        )
}
Run Code Online (Sandbox Code Playgroud)

这也不行。

struct FlappySpace: View {

    var body: some View {
        RealityView { content in
            // Logic
        }
        .gesture(
            TapGesture()
                .onEnded({ _ in
                    print("TAPPED")
                })
        )
    }
}
Run Code Online (Sandbox Code Playgroud)

有谁知道如何检测沉浸式空间中的手势,手势不能特定于空间中的实体,而是整个空间中的任何位置。特别想检测点击手势(在 VisionOS 中,这是捏)。

swiftui realitykit visionos

5
推荐指数
1
解决办法
887
查看次数

在visionOS中如何将模型锚定在用户的头部上方?

举例来说,我想在用户头顶上锚定一朵云。

我知道它AnchorEntity存在,并且您可以使用 来获取对用户头部的引用AnchorEntity(.head)。但我该如何实际使用它呢?使用这段代码我什么也看不到。

import SwiftUI
import RealityKit

struct CloudSpace: View {
    
    let headAnchor = AnchorEntity(.head)
    
    var body: some View {
        RealityView { content in
            async let cloud = ModelEntity(named: "Cloud")
            do {
                content.add(headAnchor)
                let cloud = try await cloud
                headAnchor.addChild(cloud)
            } catch {
                print(error)
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

swift swiftui realitykit visionos

4
推荐指数
1
解决办法
1461
查看次数

VisionOS 中的 Model3D 和 RealityView 有什么区别?

我认为 RealityView 应该能够做更多奇特的事情,但我仍然想弄清楚它们之间的确切区别。目前,它们彼此太相似了,例如它们都需要一个实体名称来初始化。我想知道什么时候 Model3D 就足够了,什么时候必须使用 RealityView?

swiftui realitykit visionos

4
推荐指数
1
解决办法
1967
查看次数

如何在visionOS中自定义悬停效果区域

在13:00 左右的 WWDC 空间用户界面设计视频中,Apple 对于悬停效果做了以下说明:

当您设计锁定时,请包括一个形状,该形状将允许系统在人们关注它时显示悬停效果。在这里,我们有一些图像,下面有文字。每个锁定都是一个单独的交互元素。您需要定义一个自定义区域,以便它可以在人们观看时变亮。这有助于他们了解整个区域是一个可以选择的元素。并记住在每个包含的形状之间保留小空间。

它们包括来自音乐应用程序的示例:

音乐应用截图1 音乐应用截图2

我想在我的应用程序中执行此操作,在 LazyVGrid 中显示按钮,但无法实现该结果。我知道您需要使用plain按钮样式来隐藏边框按钮的背景但保持悬停效果。虽然悬停效果显示为椭圆形,但我希望它是一个圆角矩形,周围有额外的填充,悬停效果之间有 4 pt 的间距,如上所示。如何才能做到这一点?我以为.contentShape(.hoverEffect, .rect(cornerRadius: 50))会自定义该区域,但它似乎没有改变任何东西。

Button(action: tapAction) {
    VStack {
        Color.clear
            .background(.regularMaterial)
            .aspectRatio(1, contentMode: .fit)
            .clipShape(.rect(cornerRadius: 10))
            
        HStack(spacing: 0) {
            VStack(alignment: .leading, spacing: 0) {
                Text("Line one")
                
                Text("Line two")
                    .foregroundStyle(.secondary)
            }
            
            Spacer()
            
            MarkWateredButton(action: markWateredAction)
        }
    }
    .contentShape(.hoverEffect, .rect(cornerRadius: 50).inset(by: -10)) // FIXME: Doesn't do anything
}
.buttonStyle(.plain)
Run Code Online (Sandbox Code Playgroud)

我的应用程序的屏幕截图

hover swift visionos

4
推荐指数
1
解决办法
418
查看次数

4
推荐指数
1
解决办法
2223
查看次数

VisionOS - 如何删除按钮背景?

我试图在 VisionOS 中创建一个圆形按钮,总是有一个椭圆形背景,在 iOS 版本中没有出现。我正在使用 SwiftUI 和 Xcode 15.2:

Button(action: {}) {
      Image(systemName: "arrow.up.circle.fill").resizable().frame(width: 50.0, height: 50.0)                                
}.background(Color.clear)
Run Code Online (Sandbox Code Playgroud)

更改背景没有效果,我想要的只是圆形,但按钮不断添加我不想要的椭圆形背景。我怎样才能摆脱这个背景?不需要的按钮的示例如下:

在此输入图像描述

PS:导航链接似乎也存在同样的问题,似乎也在那里设置了不需要的背景。任何指导将不胜感激。

visionos

3
推荐指数
1
解决办法
259
查看次数

RealityKit 中的粒子系统

RealityKit中有粒子系统吗?如果是这样,有人可以指出我正确的文档/文章吗?

到目前为止,我在 RealityKit 模块中没有找到任何粒子系统。

swift realitykit visionos

1
推荐指数
1
解决办法
1413
查看次数

标签 统计

visionos ×9

swift ×5

realitykit ×4

swiftui ×4

xcode ×2

hover ×1

macos ×1

vision-pro ×1