一、swiftUI基本笔记

1、状况与动画

过渡就像 Keynote 中的 Magic Move。你只需要设置状况,SwiftUI 就会为你找出两个状况之间的过渡。

@State var show = true
.onTapGesture {
    self.show.toggle()
}

2、动画制造

SwiftUI 供给了多种动画过渡作用。它们乃至具有自己的根据物理的内置函数,使你能够运用过冲作用以及将弹跳作用应用于动画。

// Linear 直线
.animation(.linear)
// Ease Animation 动画推迟
.animation(.easeInOut(duration: 0.3))
// Animation with Delay   动画推迟
.animation(Animation.easeOut(duration: 0.6).delay(0.1))
// Spring 弹出
.animation(.spring())

3、Stacks

假如你不熟悉 SwiftUI 中的仓库,我建议你大量运用 Spacer。默许情况下,视图占用子元素的最小巨细。这是我协助你理解的图像。

swiftUI基本知识点总结

这是我在 SwiftUI 中运用 Stacks 时学到的一些技巧。

// Stack views vertically and take full height  垂直堆叠视图并取全高
VStack {
  Spacer()
}
// Stack views horizontally and take full width  仓库视图水平和采纳全宽度
HStack {
  Spacer()
}
// Gap between views  视图之间的差距
VStack(spacing: 20) {}
// Stack views on top of each other in a Z (depth) unit  在Z(深度)单元中,视图之间彼此堆叠
ZStack { 
    VStack {}
    HStack {}
}
// Take maximum width without Spacer()  取最大宽度 Spacer()
.frame(minWidth: 0, maxWidth: .infinity)
// Align elements to the top left   将元素对齐到左上角
ZStack(alignment: .topLeading) {}

4、适用于一切设备的 SwiftUI

SwiftUI 适用于 iPad,Mac,Apple TV 和 Watch。代码更改最少,你能够重用许多相同的组件。Stacks,Controls 和 Layout 系统将相同,但需要进行一些调整。SwiftUI 的理念不是一次编写,处处适用(write once, apply everywhere),而是学习一次,到处运用(learn one, apply anywhere)。 例如,模态窗口是主动与上下文相关,为你供给离场手势并为你正确调整它们的巨细。大多数控件和数据可在一切渠道上作业,并进行一些小的布局更改和导航。这些控件将运用合适其特定渠道的界面主动为你翻译。例如,一个挑选器(Picker)在 iOS 中看起来像一个列表,但在 Mac 中则看起来像一个下拉列表。

// All
ZStack, VStack, HStack, TabView
NavigationView, Picker, Stepper, Slider, etc.
SF Symbols
// iPad / Mac
TabView
// Mac
Keyboard Shortcuts

5、拖放 UI

Views,Modifiers 和 Images 能够拖到 Preview 和代码中。你构建的一切内容都会主动转化为生产代码。

在与 Preview 相同的代码中,你能够运用 Command + 单击 以获取上下文菜单,你能够在其中检查元素并访问许多有用的选项,例如 Embed in VStack 或 Extract to Subview。

6、Modifiers

你能够轻松地将 Modifiers 拖放到 Views 旁边,而且能够运用新特点(例如色彩,改换,视觉作用,内置控件和手势)来增强它们。

.frame(width: 100, height: 100)
.background(Color.blue)
.shadow(radius: 10)
.offset(x: 10, y:10)
.blur()
.padding()

7、SF Symbols

你需要从 Apple 下载最新的 San Francisco 字体才能翻开规划文件。苹果在其新的 SF Symbols 应用程序中供给了 1000 个图标,能够在 Xcode 或规划东西中用作矢量资产。

在 SwiftUI 中,你能够运用 SF Symbols 的称号轻松生成图标。保证下载该应用程序。此外,你能够自定义巨细(小,中,大)并更改图标色彩。

Image(systemName: item.icon)
    .imageScale(.large)
    .foregroundColor(.blue)
    .frame(width: 32, height: 32)

8、视图和控件

你能够在 SwiftUI 中免费获得在规划东西或更复杂的交互式控件(如 Toggle,Slider 和 Data Picker)中找到的基本元素。它们的样式十分简单,能够自定义功用和数据。

Text
Image
Rectangle
Toggle
Picker
Stepper
Slider

9、视觉作用

SwiftUI 免费为你供给了一堆视觉作用(Visual Effects),以便你能够运用它们。最重要的是,你乃至能够为它们设置动画,它会很合适你!

.rotationEffect(Angle(degrees: 30))
.rotation3DEffect(Angle(degrees: 60), axis: (x: 0, y: 10, z: 0))
.scaleEffect(0.9)
.blendMode(.hardLight)
.blur(radius: 20)

10、UI 组件

就像在规划系统或 React 中相同,你应该尽或许地将 UI 分解为组件(Components)。要创立新组件,请按 Command + 单击 VStack 之类的容器,然后挑选 Extract to Subview。

VStack {
    Text("Card Back")
}
.frame(width: 340, height: 220.0)

经过编写组件称号来引用该组件。组件是视图,即便没有传递特点也依然能够接收其他 Modifiers!

CardView()
    .background(show ? Color.red : Color.blue)
    .cornerRadius(10)

11、实时预览

SwiftUI 的有趣之处在于你所做的一切更改都是实时的,包括你运用的数据。调试代码使你能够在 Swift UI 中快速测试数据和预览环境。快速迭代确实十分强壮。 你能够一起在多个设备上预览 SwiftUI 规划。你有必要先对 Content Views 进行分组,然后才能进行预览和数据设置。在这种情况下,咱们使 Preview 窗口具有自适应性。最重要的是,你能够固定预览,以便在更改代码时一直看到同一屏幕。

Group {
    ContentView()
    ContentView()
        .previewLayout(.sizeThatFits) // Preview components
        .environment(\.sizeCategory, .extraExtraExtraLarge) // Accessibility
        .previewDevice("iPhone 8")  // Specific device
}

12、漆黑形式

要在漆黑形式(Dark Mode)下预览布局,你需要在 Debug 区域的 Content View 中增加修饰符。请注意,为使你的规划在 Dark 形式下正常作业,应尽或许运用其默许色彩和控件,例如 Navigation View。

ContentView(courses: testData)
    .environment(\.colorScheme, .dark)

13、声明式代码

在 SwiftUI 中,你将编写较短的声明式代码,因而,这全都在于告知用户界面应该做什么。可读性强,开门见山。

14、主动缩进代码

当你编辑代码时,它最终将变得难以阅读,因而你能够在 Xcode 中运用 Re-Indent 保持一切内容的清洁。这有点类似于 Prettier,可是你有必要挑选代码并按 Control + I。

15、舍入到最近像素

SwiftUI 会为你调整像素,以便你的视图一直保持清晰。

swiftUI基本知识点总结

16、Swift Packages

Swift现在具有一个软件包管理器,可让你轻松地从社区装置第三方库。要装置库,请转到 Project Settings > Swift Packages。

swiftUI基本知识点总结

17、键盘快捷键

最重要的 Xcode 键盘快捷键如下:

Cmd + 单击:代码或 UI 的上下文菜单。 Option + 单击:代码快速信息。 Cmd + 0:显现/躲藏导航。 Cmd + Shift + L:刺进新元素。 Cmd + R:运行应用程序。 Cmd + . :中止应用程序。

18、教程

1、苹果官方教程:(developer.apple.com/tutorials/s…) 2、Paul Hudson 的 Hacking with Swift :(www.hackingwithswift.com/quick-start…)

19、资源

在这么短的时间内不或许涵盖一切内容,因而重要的是要用很棒的资源继续你的旅程。这是一个很好的清单。

20、资讯 1、iOS Dev Weekly (iosdevweekly.com/)

青山不改,绿水常流。谢谢我们!!!