SwiftUISwiftUISwiftUI

SwiftUI-开发iOS项目

2019-10-24  本文已影响0人  YungFan

创建项目

创建项目.png

项目文件

项目文件.png

启动流程

  1. AppDelegate中通过application(_:configurationForConnecting:options)返回一个UISceneConfiguration实例
  2. 完成启动后,控制权被交接给 SceneDelegate,它的 scene(_:willConnectTo:options:)将会被调用,设置window的根视图控制器
  3. 在初始化根视图控制器时会初始化ContentView中的View,显示出来

ContentView如何显示在屏幕上?

SceneDelegate.swift中会看到这样的代码:

//创建window
let window = UIWindow(windowScene: windowScene)
//设置window的rootViewController 
window.rootViewController = UIHostingController(rootView: ContentView())
self.window = window
window.makeKeyAndVisible()

ContentView.swift

import SwiftUI

struct ContentView : View {
    var body: some View {
        Text("Hello SwiftUI")
    }
}

struct ContentView_Previews : PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

Previews

Xcode 11 + macOS 10.15 可以实时预览 SwiftUI 实现的界面,这个预览可以帮助我们快速查看代码对应的效果而不需要运行。

struct ContentView_Previews: PreviewProvider {
   static var previews: some View {
      Group {
         ContentView()
            // 预览设备
            .previewDevice(PreviewDevice(rawValue: "iPhone 11"))
            // 预览设备名称
            .previewDisplayName("iPhone 11")

         ContentView()
            .previewDevice(PreviewDevice(rawValue: "iPhone 11 Pro Max"))
            .previewDisplayName("iPhone 11 Pro Max")
      }
   }
}
struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        Group {
            // 超大文本
            ContentView()
                .environment(\.sizeCategory, .accessibilityExtraExtraExtraLarge)
            // 深色模式  
            ContentView()
                .environment(\.colorScheme, .dark)
            // 导航视图      
            NavigationView {
                ContentView()
            }
        }
    }
}

SwiftUI 视频教程

SwiftUI视频教程本人录制了一套SwiftUI视频教程,欢迎各位批评指教。

上一篇 下一篇

猜你喜欢

热点阅读