前语

最近在回顾Flutter技能时,与老同事聊起SwiftUI,我们了解到SwiftUI和Flutter UI技能都是声明式语法,因此近两天写了一些Demo进行简单测验

一、SwiftUI快速上手

为了快速上手,我找了一些对SwiftUI有所研究的博主,跟着对方的博客笔记敲击了十来个Demo:

SwiftUI 快速上手推荐
在屡次测验之后,我发现,经过SwiftUI写UI,的确会必定程度上减少代码量。

二、博文推荐

SwiftUI快速上手推荐:

三、SwiftUI与UIKit的异同:

  • 1.声明式vs指令式:SwiftUI是声明式的,你只需求描述界面应该是什么姿态,而SwiftUI会处理实际的烘托进程。而UIKit是指令式的,你需求告诉UIKit怎么一步步地创建和更新界面。
  • 2.跨渠道:SwiftUI能够在所有Apple渠道(包含iOS、macOS、watchOS和tvOS)上运用,而UIKit只能用于iOS和tvOS。
  • 3.组件:SwiftUI供给了一些UIKit中没有的组件,如Grid和Form。同时,SwiftUI的组件在所有Apple渠道上都有共同的外观和行为。
  • 4.数据流:SwiftUI引入了一些新的数据流概念,如@State、@Binding、@ObservedObject和@EnvironmentObject,它们使得数据状况办理愈加直观和共同。而在UIKit中,你一般需求手动办理数据状况和更新界面。
  • 5.兼容性:SwiftUI需求iOS13 或更高版别,而UIKit能够在更早的iOS版别上运用。
  • 6.成熟度:UIKit现已存在了很长时间,有很多的文档、教程和社区支撑。而SwiftUI是在2019 年才推出的,虽然它正在快速发展,但还没有UIKit那么成熟。

总的来说,SwiftUI供给了一种更现代、更简练的方法来构建界面,但假如你需求支撑旧的iOS版别,或者需求运用UIKit供给的一些高档功用,那么UIKit仍然是一个很好的挑选。

四、SwiftUI布局

写了几个Demo后,我们能够了解到,其实要用SwiftUI斜截面,把握SwiftUI的布局方法很重要

在SwiftUI中,布局主要由容器视图(如HStack、VStack和ZStack)和修饰符(如padding、frame和offset)来操控。

以下是一些常用的容器视图:

-HStack:在水平方向上排列其子视图。
-VStack:在笔直方向上排列其子视图。
-ZStack:在深度方向上堆叠其子视图。

以下是一些常用的修饰符: -padding:给视图增加内边距。
-frame:设置视图的尺度和对齐方法。
-offset:移动视图的方位。

在HStack、VStack、ZStack中还能够用spacing来约束,容器内部子视图的距离