精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

如何使用 SwiftUI 構建 visionOS 應用

開發 前端
在介紹了 SwiftUI 在 visionOS 上的應用之后,我們了解到 SwiftUI 可以幫助我們輕松構建適應 visionOS 的應用程序。

前言

Apple Vision Pro 即將推出,現在是看看 SwiftUI API 的完美時機,這使我們能夠將我們的應用程序適應 visionOS 提供的沉浸式世界。蘋果表示,構建應用程序的最佳方式是使用 Swift 和 SwiftUI。下面,我們將學習如何使用 SwiftUI 構建 visionOS 應用程序。

Windows

我喜歡 SwiftUI 的一點是它如何自動適應平臺。你無需執行任何操作即可在 visionOS 上運行使用 SwiftUI 編寫的應用程序。它可以即插即用。但是,你始終可以通過向前移動并適應平臺功能來改進用戶體驗。

struct ContentView: View {
    var body: some View {
        NavigationSplitView {
            List {
            // 列表內容
            }
            .navigationTitle("Models")
            .toolbar {
                ToolbarItem(placement: .bottomOrnament) {
                    Button("open", systemImage: "doc.badge.plus") {
                        
                    }
                }
                
                ToolbarItem(placement: .bottomOrnament) {
                    Button("open", systemImage: "link.badge.plus") {
                        
                    }
                }
            }
        } detail: {
            Text("Choose something from the sidebar")
        }
    }
}

在上面的示例中,我們使用了稱為 bottomOrnament 的新工具欄放置。visionOS 中的裝飾是位于窗口外部的位置,用于呈現與窗口連接的控件。你還可以通過使用新的 ornament 視圖修改器手動創建它們。

struct ContentView: View {
    var body: some View {
        NavigationSplitView {
            List {
            // 列表內容
            }
            .navigationTitle("Models")
            .ornament(attachmentAnchor: .scene(.leading)) {
                // 在此處放置你的視圖
            }
        } detail: {
            Text("Choose something from the sidebar")
        }
    }
}

新的 ornament 視圖修改器允許我們為其連接的窗口創建一個具有特定錨點的裝飾。將你的應用內容適應 visionOS 提供的沉浸式體驗的另一種方法是使用 transform3DEffect 和 rotation3DEffect 視圖修改器來加入深度效果。如下圖:

Volumes

你的應用程序可以在 visionOS 上的同一場景中并排顯示 2D 和 3D 內容。在這種情況下,我們可以使用 RealityKit 框架來呈現 3D 內容。例如,RealityKit 為我們提供了 Model3D SwiftUI 視圖,允許我們從 USDZ 或實際文件中顯示 3D 模型。

struct ContentView: View {
    var body: some View {
        NavigationSplitView {
            List(Model.all) { model in
                NavigationLink {
                    Model3D(named: model.name)
                } label: {
                    Text(verbatim: model.name)
                }
            }
            .navigationTitle("Models")
        } detail: {
            Model3D(named: "robot")
        }
    }
}

Model3D 視圖的工作方式類似于 AsyncImage 視圖,并異步加載模型。你還可以使用 Model3D 初始化器的另一種變體,它允許你自定義模型配置并添加占位視圖。

struct ContentView: View {
    var body: some View {
        NavigationSplitView {
            List(Model.all) { model in
                NavigationLink {
                    Model3D(
                        url: Bundle.main.url(
                            forResource: model.name,
                            withExtension: "usdz"
                        )!
                    ) { resolved in
                        resolved
                            .resizable()
                            .aspectRatio(contentMode: .fit)
                    } placeholder: {
                        ProgressView()
                    }
                } label: {
                    Text(verbatim: model.name)
                }
            }
            .navigationTitle("Models")
        } detail: {
            Model3D(named: "robot")
        }
    }
}

在你的應用程序中呈現 3D 內容時,你可以使用 windowStyle 修飾符來啟用內容的體積顯示。體積樣式允許你的內容在第三維中增長,以匹配模型的大小。

對于更復雜的 3D 場景,我們可以使用 RealityView 并填充它以 3D 內容。

struct ContentView: View {
    var body: some View {
        NavigationSplitView {
            List(Model.all) { model in
                NavigationLink {
                    RealityView { content in
                        // load the content and add to the scene
                    }
                } label: {
                    Text(verbatim: model.name)
                }
            }
            .navigationTitle("Models")
        } detail: {
            Text("Choose something from the sidebar")
        }
    }
}

沉浸式空間

visionOS 的第三個選項是完全沉浸式體驗,允許我們通過隱藏周圍的所有內容來專注于你的場景。

@main
struct MyApp: App {
    var body: some Scene {
        WindowGroup {
            ContentView()
        }
        
        ImmersiveSpace(id: "solar-system") {
            SolarSystemView()
        }
    }
}

正如你在上面的示例中所看到的,我們通過使用 ImmersiveSpace 類型來定義場景。它允許我們通過使用 openImmersiveSpace 環境值來啟用它。

struct MyMenuView: View {
    @Environment(\.openImmersiveSpace) private var openImmersiveSpace
    
    var body: some View {
        Button("Enjoy immersive space") {
            Task {
                await openImmersiveSpace(id: "solar-system")
            }
        }
    }
}

我們還可以使用 dismissImmersiveSpace 環境值來關閉沉浸式空間。請記住,你一次只能顯示一個沉浸式空間。

struct SolarSystemView: View {
    @Environment(\.dismissImmersiveSpace) private var dismiss
    
    var body: some View {
        // Immersive experience
        
        Button("Dismiss") {
            Task {
                await dismiss()
            }
        }
    }
}

結論

在介紹了 SwiftUI 在 visionOS 上的應用之后,我們了解到 SwiftUI 可以幫助我們輕松構建適應 visionOS 的應用程序。不僅如此,SwiftUI 還提供了許多方便的工具和修飾符,例如 windowStyle 修飾符,可用于在應用程序中呈現 3D 內容,并使內容根據模型的大小自動適應。通過引入沉浸式空間,我們可以將用戶帶入全新的體驗,讓他們沉浸在應用程序的世界中。總的來說,SwiftUI 為構建 visionOS 應用程序提供了強大而靈活的工具,我們可以期待在這個全新的平臺上開發出令人驚嘆的應用體驗。

責任編輯:姜華 來源: Swift社區
相關推薦

2021-02-03 15:10:38

GoKubernetesLinux

2024-07-03 09:13:26

SwiftUI修飾符框架

2022-10-08 00:53:12

HTTP物聯網應用程序

2017-02-24 10:02:04

AndroidMVVM應用框架

2021-10-29 16:18:14

Streamlit Python

2023-09-21 08:00:00

ChatGPT編程工具

2023-09-15 08:00:20

2023-12-29 09:01:10

SwiftUI空狀態Product?

2022-08-24 09:02:27

SwiftUIiOS

2023-08-21 14:02:59

iOS 17SwiftUI

2017-03-02 11:10:39

AndroidMVVM應用程序

2017-12-10 14:13:14

云服務云原生應用程序

2016-08-10 10:18:55

2009-01-03 14:54:36

ibmdwWebSphere

2021-11-07 14:29:13

ChromeAPI 藍牙

2024-01-05 07:41:34

OpenLLM大語言模型LLM

2010-06-13 09:22:37

jQuery

2023-04-25 15:50:50

Flask框架Web

2022-05-31 08:49:02

Flutter應用程序前端

2013-04-01 09:35:30

移動云應用BYOD云模型
點贊
收藏

51CTO技術棧公眾號

91露出在线| 欧美成人精品欧美一级私黄| 女人高潮被爽到呻吟在线观看| 国产成人免费在线视频| 日本一本a高清免费不卡| 国产人妻大战黑人20p| 国产欧美日韩电影| 色综合久久久久综合| 一本久久a久久精品vr综合| 91高潮大合集爽到抽搐| 国产日韩欧美一区在线| 久久精品亚洲热| yy1111111| 在线观看亚洲精品福利片| 午夜精品久久久久久久久久久| 亚洲国产精品视频一区| 少妇精品高潮欲妇又嫩中文字幕 | 精品av中文字幕在线毛片| 日本免费新一区视频| 欧美精品video| 精品一区二区三孕妇视频| 成人知道污网站| 欧美三级电影网站| 久久婷婷五月综合色国产香蕉| 麻豆影院在线观看| 国产亚洲欧美色| 国产精品swag| 国产人妖一区二区三区| 日本亚洲天堂网| 97视频免费在线看| 麻豆91精品91久久久| 欧美hd在线| 亚洲三级 欧美三级| 蜜臀视频在线观看| 日本精品视频| 欧美一区二区三区白人| 鲁一鲁一鲁一鲁一av| 台湾佬中文娱乐久久久| 精品久久久久久中文字幕一区奶水| 精品国产三级a∨在线| 激情小视频在线观看| 91在线国产福利| 春色成人在线视频| 伊人网站在线观看| 日韩国产高清影视| 国产成人福利视频| 亚洲 欧美 日韩 综合| 亚洲精品美女91| 国内精品久久久久久久| 国产一级片免费看| 亚洲黄色高清| 4k岛国日韩精品**专区| 亚洲黄色一区二区| 亚洲一区国产| 午夜免费久久久久| 日本韩国欧美中文字幕| 国产欧美日韩一级| 国产成人啪精品视频免费网| 日本熟女毛茸茸| 日日夜夜免费精品| 国产精品观看在线亚洲人成网| 国产一级片免费在线观看| 首页国产欧美久久| 国产欧美一区二区白浆黑人| 一区二区自拍偷拍| 国产精品一区二区在线看| 亚洲伊人久久综合| 日韩中文字幕免费在线观看| 菠萝蜜视频在线观看一区| 久久青青草原一区二区| 黄色的视频在线免费观看| 国产精品视频第一区| 一区二区三区国| 一色桃子av在线| 亚洲国产人成综合网站| 北条麻妃在线视频观看| 日韩三区免费| 欧美日本在线视频| 岛国精品一区二区三区| 玖玖玖免费嫩草在线影院一区| 亚洲乱码国产乱码精品精天堂| 亚洲av毛片基地| 欧美一区二区三区久久精品茉莉花| 久久久久久久久久久人体| 亚洲GV成人无码久久精品| 久久精品国产一区二区| 国产精品果冻传媒潘| 日韩资源在线| 亚洲人成人一区二区在线观看| www.射射射| 91另类视频| 精品国产亚洲一区二区三区在线观看| 亚洲黄色在线网站| 99久久99视频只有精品| 26uuu国产精品视频| 亚洲怡红院av| 91亚洲资源网| 91视频成人免费| 毛片无码国产| 日韩欧美亚洲另类制服综合在线| 熟女少妇一区二区三区| 在线成人直播| 国产精品6699| 欧美自拍偷拍第一页| 国产精品天干天干在线综合| 日韩av中文字幕第一页| 欧美激情福利| 亚洲欧美另类人妖| 久久久久久国产精品免费播放| 日韩高清不卡在线| 国产亚洲自拍偷拍| 久久bbxx| 欧美性一级生活| 久久久久国产精品无码免费看| 亚州av乱码久久精品蜜桃| 日本久久91av| 熟妇人妻一区二区三区四区 | 婷婷午夜社区一区| 日韩美女天天操| 5566中文字幕| 日韩精品久久理论片| 精品国产乱码久久久久久108| 免费黄色电影在线观看| 欧美中文字幕一二三区视频| 国产一线在线观看| 欧美 日韩 国产一区二区在线视频| 国产不卡av在线| 四虎影院在线播放| 午夜精品久久久久久久99水蜜桃| 亚洲高清在线不卡| 日韩欧美网站| 国产欧美精品一区二区| 韩国福利在线| 色一区在线观看| aaaaa一级片| 国产精品亚洲欧美| 精品视频高清无人区区二区三区| 免费在线国产视频| 欧美大片在线观看| 久久午夜无码鲁丝片午夜精品| 精品在线观看视频| 日韩不卡一二区| 久久综合给合| 欧美极品美女视频网站在线观看免费| 99视频国产精品免费观看a| 亚洲婷婷综合久久一本伊一区| 视频在线观看免费高清| 色乱码一区二区三区网站| 国产精品国产亚洲伊人久久| 欧美色视频免费| 色狠狠色狠狠综合| 久久丫精品忘忧草西安产品| 日韩精品欧美成人高清一区二区| 日韩欧美国产二区| 欧美aaaaaaaa| 久久综合伊人77777尤物| 99热这里只有精品在线| 亚洲国产综合在线| 黄色在线观看av| 日韩不卡在线观看日韩不卡视频| 日韩三级在线播放| 99er精品视频| 蜜臀久久99精品久久久无需会员 | 国产在线不卡一区二区三区| 欧美精品少妇videofree| 亚洲欧美黄色片| 精品久久久香蕉免费精品视频| 我和岳m愉情xxxⅹ视频| 蜜臀精品一区二区三区在线观看| 制服丝袜综合日韩欧美| 日韩精品视频中文字幕| 91av在线国产| 成年人视频在线观看免费| 欧美夫妻性生活| 久久一二三四区| 久久久久国产成人精品亚洲午夜| 中文字幕第88页| 欧美三区不卡| 欧美亚洲一级二级| 青青伊人久久| 97色伦亚洲国产| 一本一道波多野毛片中文在线| 日韩欧美色综合网站| 久久精品视频7| 成人免费在线视频| 国产高清自拍视频| 激情丁香综合五月| www国产精品内射老熟女| 欧美日韩国产传媒| 国产69精品久久久久9999apgf | 大地资源二中文在线影视观看| 日本亚洲欧美天堂免费| 日韩a级黄色片| 欧美日韩激情| 国产丝袜不卡| 亚洲高清国产拍精品26u| 97婷婷大伊香蕉精品视频| 在线观看黄av| 日韩精品视频在线免费观看| 一级特黄aaa| 色综合中文综合网| 久久艹精品视频| 国产精品色哟哟网站| www.17c.com喷水少妇| 精品亚洲成av人在线观看| 欧美日韩亚洲一| 欧美成人综合| 亚洲欧美久久234| 亚洲宅男一区| 国产一区二区三区黄| 国产成人久久精品一区二区三区| 奇门遁甲1982国语版免费观看高清| xvideos国产在线视频| 亚洲人成五月天| 姝姝窝人体www聚色窝| 日韩三级免费观看| 国产精品无码免费播放| 在线观看中文字幕不卡| 欧美三日本三级少妇99| 亚洲一区二区三区四区在线观看 | 在线综合亚洲| 国产在线视频综合| 2023国产精品久久久精品双| 视频一区二区三区免费观看| 欧美男人操女人视频| 99久久99| 亚洲免费一区三区| 亚洲影院污污.| 高清久久一区| 成人激情黄色网| 四虎国产精品免费久久5151| 国产精品成人一区二区| 成人在线网站| 国产精品成人播放| 亚洲四虎影院| 国产精品久久久| 日韩一级二级| 国产精品免费视频xxxx| 日韩视频网站在线观看| 欧美一级视频免费在线观看| 欧美aa在线观看| 在线看一区二区| 国产在线拍揄自揄拍无码视频| 亚洲人亚洲人成电影网站色| 视频国产一区二区| 中文字幕人成不卡一区| 一级免费黄色录像| 日韩一区在线看| 成人免费视频网站入口::| 亚洲三级在线观看| 亚洲熟女www一区二区三区| 亚洲精品v日韩精品| 国产精品 欧美激情| 一区二区三区免费观看| 美国黄色小视频| 亚洲午夜电影在线| 免费在线不卡视频| 91久久精品一区二区| 五月婷婷丁香在线| 欧美精品乱码久久久久久 | 九色porny丨入口在线| 69av视频在线播放| 欧美18—19sex性hd| 国产精品美乳在线观看| 999精品嫩草久久久久久99| www国产亚洲精品| 美女一区2区| 奇米精品在线| 91精品99| 欧美日韩在线一| 蜜臀91精品一区二区三区| 日批视频在线看| 91在线丨porny丨国产| 日本高清黄色片| 亚洲另类色综合网站| 亚洲黄色一区二区| 欧美日韩国产一二三| 国内毛片毛片毛片毛片| 亚洲精选中文字幕| 日本三级在线播放完整版| 欧美国产日韩一区二区在线观看| 国产色播av在线| 国产日韩在线免费| 国产一区调教| 亚洲激情一区二区| 亚洲国产高清一区二区三区| 妺妺窝人体色www在线观看| 国产精品小仙女| 中文字幕一区二区人妻在线不卡| 中文字幕一区免费在线观看| 欧美成人aaaaⅴ片在线看| 欧洲日韩一区二区三区| 成人免费视频国产| 中文日韩电影网站| 亚洲一级少妇| 亚洲a级在线观看| 精品国产不卡| 玩弄中年熟妇正在播放| 精品一区二区三区久久| 国产美女精品久久| 一二三四区精品视频| 中文亚洲av片在线观看| 亚洲国产一区自拍| 国产原厂视频在线观看| 国产成人精品av| 国产精品色呦| 久久最新免费视频| 毛片av一区二区三区| 超碰97在线资源站| 亚洲国产成人av网| 国产精品欧美久久久久天天影视| 亚洲精品综合精品自拍| 91在线三级| 91精品国产综合久久久久久丝袜| 国产探花一区二区| 国模无码视频一区二区三区| 国产精品综合在线视频| 福利视频第一页| 在线日韩av片| 蝌蚪视频在线播放| 97avcom| 粉嫩一区二区三区四区公司1| 中文字幕日韩精品久久| 日本怡春院一区二区| 四虎永久免费在线观看| 精品久久香蕉国产线看观看gif| www.黄色av| 久久久国产一区二区| 日韩深夜福利网站| 亚洲精品tv久久久久久久久| 日日夜夜免费精品视频| 香蕉视频久久久| 91成人在线免费观看| 国内在线精品| 国产成人91久久精品| 国产剧情在线观看一区| 日本在线观看a| 久久综合色播五月| 欧美 日韩 精品| 国产视频在线观看一区二区| 忘忧草在线影院两性视频| 精品久久精品久久| 国产精品一区毛片| 欧美大片免费播放器| 日韩欧美第一页| 狠狠狠综合7777久夜色撩人| 国产成人精品一区二区| 国产亚洲一区| 午夜久久福利视频| 亚洲视频在线一区二区| 国产熟女精品视频| 欧美精品videos| 亚洲区小说区图片区qvod按摩| 国产亚洲天堂网| 国产日韩精品视频一区| 亚洲系列在线观看| 久久综合久久八八| 老汉色老汉首页av亚洲| 国产乱淫av片杨贵妃| 99精品视频在线观看免费| 麻豆成人免费视频| 日韩在线免费av| 激情不卡一区二区三区视频在线| 日韩一级免费看| av亚洲精华国产精华精| 狠狠狠狠狠狠狠| 久久天天躁狠狠躁夜夜躁2014| 久久免费精品| 黄色一级视频片| 国产精品女主播在线观看| 国产福利免费视频| **欧美日韩vr在线| 日韩免费av| 国产sm在线观看| 色婷婷av一区二区三区gif| 在线激情网站| 国产乱码精品一区二区三区中文 | 国产精品久久电影观看| 亚洲网色网站| 亚洲av无码一区二区三区网址| 在线观看国产一区二区| 污污在线观看| 日韩免费中文专区| 成人免费毛片片v| 欧美 亚洲 另类 激情 另类| 欧美黑人xxxⅹ高潮交| 国产精品一国产精品| 在线成人精品视频| 色综合久久久久综合99| caoporn免费在线| 奇米精品在线| 成人国产在线观看| 97成人在线观看| 91黄色8090| 中文字幕一区二区av| mm131美女视频| 精品国产百合女同互慰| 成人精品动漫| 国产一区二区三区精彩视频| 一区二区三区中文在线观看|