动画(二) – 控制动画
在 SwiftUI 中,有多种⽅式可以指定动画发⽣地时机 当某个特定的值改变时,触发隐式动画。 当某个特性事件发⽣时,触发显示动画。 动画类型 隐式动画 要指定隐式动画,可以在视图树的任意位置使...
动画(三) – 动画协议
SwiftUI 属性动画系统的核⼼是 Animatable 协议。这个协议可以被视图和视图修饰符所实现,它们通过该协议把可以进⾏动画的属性暴露给SwiftUI。 这个协议唯⼀的要求是⼀个 animatableData 属性,...
动画(四) – 过渡
以视图的插⼊和移除来设定动画,SwiftUI 将这些动画称为 过渡 (transition) 。 当我们使⽤动画来改变那些会导致视图插⼊或者移除的状态时,SwiftUI 会添加⼀个默认的 .opacity 过渡效果。 struc...
语法(一) – 模式匹配
Swift 的 switch 语句具有灵活却富有表现力的匹配模式。 基本使用 单值匹配 单值字符串匹配 let name = "twostraws" switch name { case "bilbo": print("Hello, Bilb...
语法(二) – 空合操作符
一个变量只有在确定有值的情况下才能被使用。另一种方法是使用 ! 显式地解除可选项。这也被称为 '崩溃操作符',因为如果在使用 ! 时将可选项设为 nil,那么程序将立即崩溃。 空合操作符 ??,允...
语法(三) – guard
guard 语句的主要用法有以下几种: 提前返回 减少缩进级别 高Happy Path可见性 提前返回 guard 用于提前返回,如果某些先决条件未满足,则退出函数。 func giveAward(to name: String) { guard n...