美文网首页
SwiftUI基本知识点总结

SwiftUI基本知识点总结

作者: 一眼万年的星空 | 来源:发表于2023-01-06 18:53 被阅读0次

    一、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。默认情况下,视图占用子元素的最小大小。这是我帮助你理解的图像。

    1

    这是我在 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 会为你调整像素,以便你的视图始终保持清晰。

    1

    16、Swift Packages

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

    1

    17、键盘快捷键

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

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

    18、教程

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

    19、资源

    在这么短的时间内不可能涵盖所有内容,因此重要的是要用很棒的资源继续你的旅程。这是一个很好的清单

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

    青山不改,绿水常流。谢谢大家!!!

    相关文章

      网友评论

          本文标题:SwiftUI基本知识点总结

          本文链接:https://www.haomeiwen.com/subject/zsnscdtx.html