Algorithm
描述: 给定一个链表和一个特定值 x,对链表进行分隔,使得所有小于 x 的节点都在大于或等于 x 的节点之前。你应当保留两个分区中每个节点的初始相对位置。
思路: 遍历一遍键表,把比 x 大的结点按顺序抽出来生成1个新的链表,再将2个链接结合即可。
Review
SwiftUI 特性
- 使用声明式语法
- 它知道状态改变的时间,并可以在那时更新view
- 构造可复用组件
- 减少设计屏幕、委托和动作的代码量
- 当模型参数变化时,自动更新UI组件
- 默认支持动态类型和黑暗模式
SwiftUI 的高级组件
UIHostingController
它是一个包含 view 类型内容的 UIViewController 。所有的 view 都在其中,通常将其设置为 window 的 rootviewcontroller 。
View
一个 view 协议,它的 body 属性也是一个 view 。 body 同时也是必须要实现的属性,自定义 view 的内容和行为都在此处设置。
PreviewProvider
它也是个协议,用于实现名为 previews 的属性,它是用于 xcode 的实时视图。根据需要的平台或设备可以设置任意数量的 previews 。
HStack
一个容器,里面包含 content/elements/children's 等内容,会将子元素横向排列。
子内容可以设置的属性有 .bottom, .center, 和 .top
VStack
和 HStack 类似,只是排列方向是竖向。
子内容可以设置的属性有 .leading, .trailing, 和 .center
ZStack
和 HStack 和 VStack 类似,但允许为子内容同时设置两个方向上的约束。
子内容可以设置的属性有 .bottom, .bottomLeading, .bottomTrailing, .center, .leading, .trailing, .top, .topLeading, 和 .topTrailing
Spacer
用于调节整体UI位置的可伸缩空间。
Divider
可见的分隔线。
Padding
通过指定的 edge insets 为 view 设置 padding 。
Text
文字
Image
图像
List
列表
Form
list 的扩展,一个表格。
适用范围
SwiftUI 目前只能在 iOS 13 及以上的版本中使用,要大范围应用的话还需要再等几年。
Tips
android ktx 中动画的 doOnCancel
inline fun Animator.doOnCancel(crossinline action: (animator: Animator) -> Unit): AnimatorListener
Share
无