概览
小伙伴们肯定都惊叹过 SwiftUI 在界面设计中摧枯拉朽和辞简理博的强大,也一定被 SwiftUI 开发中各种“恢诡谲怪”的奇葩问题搞的“五内俱崩”、欲哭无泪。
在这些种种问题中,动画效果不尽如人意是很常见的一类。
如上图所示,我们的 DisclosureGroup 在收缩时并没有对应“可耐”的动画,显得很生硬!这是怎么回事呢?
在本篇博文中,您将学到如下内容:
在 SwiftUI 中,动画效果不能如愿大概率是秃头码农们自己撸码的不是。我们必须知其然同时知其所以然才能泰然处之的将它们“全面瓦解”。
那还等什么呢?Let‘s fix it!!!
SwiftUI 中的 DisclosureGroup 视图
从 SwiftUI 2.0(iOS 14)开始,苹果增加了全新的 DisclosureGroup 原生视图:
DisclosureGroup 的作用很简单:就是节省空间。我们可以通过它来有的放矢的展开和收起内容视图,从而合理的精简界面布局。
struct ContentView: View {
@State var isExpanding = false
@State var sltingValue: Int?
var body: some View {
NavigationStack {
Form {
DisclosureGroup(
isExpanded: $isExpanding.animation(),
content: {
List {
ForEach(0...10, id: \.self) {
i in
Text("Value \(i)")
.font(.title2.weight(.bold))
.swipeActions(edge: .trailing, allowsFullSwipe: false) {
Button("选择") {
sltingValue = i
isExpanding = false
文章评论