主张横屏阅览代码
封面来自
-
特点包装器
-
UIApplicationDelegateAdaptor
-
Modifier
-
为 iPadOS 增加边栏
-
用 matchedGeometryEffect() 同步从一个视图到另一个视图的动画
-
控件
-
ContainerRelativeShape
-
创立可打开的列表
-
用 DisclosureGroup 躲藏或许显现内容
-
在 SwiftUI 中持续 NSUserActivity
-
用 ExportFilesAction 导出文件
特点包装器
UIApplicationDelegateAdaptor
AppDelegate
的功用,你应该创立一个承继自
NSObject
和
UIApplicationDelegate
的类,如下:
class AppDelegate: NSObject, UIApplicationDelegate {
func (_ : UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) - Bool {
print("发动结束")
return true
}
}
有了这个类,你就能够在运用的进口运用
UIApplicationDelegateAdaptor
特点包装器来创立和办理运用的署理类:
struct NewIn14App: App {
(AppDelegate.self) var
var body: some Scene {
WindowGroup {
ContentView()
}
}
}
Modifier
为 iPadOS 增加边栏
iPadOS 中不只能够显现惯例的分离式的视图控制器,还能够点击按钮触发边栏。在 SwiftUI 中,咱们通过给
NavigationView
增加第三个视图来完成边栏:
struct ContentView: View {
var body: some View {
NavigationView {
Sidebar()
PrimaryView()
DetailView()
}
}
}
SwiftUI 会主动处理好显现按钮以及点击按钮时从屏幕边际滑入边栏的逻辑。一起,假设你的处于紧凑形式,还会将其折叠在主视图中。
假设你打算在边栏中运用列表,最好是用
.listStyle()
给边栏供给系统规范款式:
struct Sidebar: View {
var body: some View {
List(1..100) { i in
Text("行 \(i)")
}
.listStyle(SidebarListStyle())
}
}
用 matchedGeometryEffect() 同步从一个视图到另一个视图的动画
假设你有一个视图出现在视图层级的两个当地,而且需要在两处之间做动画过渡 —— 例如,从一个列表项放大成一个细节视图 —— 那么你能够运用 SwiftUI 的
matchedGeometryEffect()
modifier,它的作用有点像 Keynote 里的 Magic Move。
这个 modifier 的用法是附加在视图系统中不同当地,但表明同一元素的一对视图上。然后切换视图状况,触发同步动画。
为了演示它的用法,咱们制造一个比如,里边有一个赤色的圆,然后是文本。当视图状况切换时,圆跑到文本的后边,而且改动色彩:
struct ContentView: View {
private var isFlipped = false
var body: some View {
VStack {
if isFlipped {
Circle()
.fill(Color.red)
.frame(width: 44, height: 44)
Text("WWDC 2020")
.font(.headline)
} else {
Text("WWDC 2020")
.font(.headline)
Circle()
.fill(Color.blue)
.frame(width: 44, height:
本文来自网络,不代表快递资讯网立场。转载请注明出处: http://www.llaiot.com/logistics-news/1835.html