gpt4 book ai didi

ios - 使用 Xcode 11 时,SwiftUI View 以小窗口而不是全屏呈现

转载 作者:行者123 更新时间:2023-12-01 19:30:20 29 4
gpt4 key购买 nike

我最近使用 Xcode 12 的 beta 版创建了一个新的 SwiftUI 项目。然后我尝试在非 beta Xcode 11 中打开这个项目,在更新代码以使用 SwiftUI 1.0 风格的 AppDelegate 之后,我能够构建并运行应用程序。问题是 现在我已经迁移到 Xcode 11,应用程序在一个小框架内呈现,而不是占据整个屏幕。
这是一个简化的示例:
Xcode 12 与 Xcode 11
SwiftUI app taking up whole screen SwiftUI rendering in small frame, not full screen

我的简化 View 代码如下:

struct ContentView: View {
var body: some View {
VStack {
Text("Hello World!")
}
}
}
应用委托(delegate):
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration {
// Called when a new scene session is being created.
// Use this method to select a configuration to create the new scene with.
return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role)
}
}
场景委托(delegate):
class SceneDelegate: UIResponder, UIWindowSceneDelegate {
var window: UIWindow?

func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
// Use this method to optionally configure and attach the UIWindow `window` to the provided UIWindowScene `scene`.
// If using a storyboard, the `window` property will automatically be initialized and attached to the scene.
// This delegate does not imply the connecting scene or session are new (see `application:configurationForConnectingSceneSession` instead).

// Create the SwiftUI view that provides the window contents.
let contentView = ContentView()

// Use a UIHostingController as window root view controller.
if let windowScene = scene as? UIWindowScene {
let window = UIWindow(windowScene: windowScene)
window.rootViewController = UIHostingController(rootView: contentView)
self.window = window
window.makeKeyAndVisible()
}
}

我已经尝试创建一个新的 Xcode 11 项目(可以正确渲染)并将其内容与我自己的项目进行比较,但到目前为止,我还没有找到它的 AppDelegate、SceneDelegate、ContentView、build设置等之间的任何区别。
为了让 SwiftUI 在 Xcode 11 项目中全屏呈现,是否应该更改一个选项?

最佳答案

这是因为 Xcode 11 项目缺少启动屏幕。
这可以通过执行以下操作来解决:

  • 右键单击您的项目名称,选择新文件... ,然后选择 Storyboard .
  • 在 Storyboard 中,添加一个新的 View Controller 。
  • 在您的应用目标设置中,找到 “应用程序图标和启动图像”部分。
  • 从下拉列表中选择您的启动屏幕:
    enter image description here

  • 现在运行您的应用程序,SwiftUI View 将填满整个屏幕!

    关于ios - 使用 Xcode 11 时,SwiftUI View 以小窗口而不是全屏呈现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63195985/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com