我今天剛剛開始使用 Swift UI,并按照教程進行了擴展部分。一切都很順利,影片也很好,直到出現了一個不推薦的警告.animation(.default)。我使用了推薦的方法,該方法轉換為.animation(.default, value: isOpen)也可以使用,但是 VStack 沒有為行設定影片并且看起來很糟糕。有什么我可以做的來解決這個問題嗎?
例子只是 .animation(.default)

調整到的示例 .animation(.default, value: isOpen)

import SwiftUI
struct FilterTest: View {
var body: some View {
ScrollView{
HeaderCellTest()
HeaderCellTest()
HeaderCellTest()
HeaderCellTest()
Spacer()
}
}
}
struct HeaderCellTest: View {
@State private var isOpen: Bool = false
var body: some View {
content
.padding(.leading)
.frame(maxWidth: .infinity)
}
private var content: some View {
VStack(alignment: .leading, spacing: 8) {
HStack {
Text("HEADING")
}
.onTapGesture { isOpen.toggle() }
if isOpen {
Group {
Text("Item")
Text("Item")
Text("Item")
Text("Item")
Text("Item")
}
.padding(.leading)
}
Divider()
}
.animation(.default, value: isOpen)
}
}
struct FilterTest_Previews: PreviewProvider {
static var previews: some View {
FilterTest()
}
}
uj5u.com熱心網友回復:
當您想要為更改設定影片時,您需要用withAnimation塊包圍 et modify 值。
CF 檔案:https : //developer.apple.com/documentation/swiftui/withanimation( : :)
編輯代碼:
private var content: some View {
VStack(alignment: .leading, spacing: 8) {
HStack {
Text("HEADING")
}
.onTapGesture {
// <--- Add block for animation --->
withAnimation {
isOpen.toggle()
}
}
if isOpen {
Group {
Text("Item")
Text("Item")
Text("Item")
Text("Item")
Text("Item")
}
.padding(.leading)
}
Divider()
}
.animation(.default, value: isOpen)
}
uj5u.com熱心網友回復:
您應該使用 VStack 并洗掉組!
struct FilterTest: View {
var body: some View {
ScrollView{
HeaderCellTest()
HeaderCellTest()
HeaderCellTest()
HeaderCellTest()
Spacer()
}
}
}
struct HeaderCellTest: View {
@State private var isOpen: Bool = false
var body: some View {
content
.padding(.leading)
.frame(maxWidth: .infinity)
}
private var content: some View {
VStack(alignment: .leading, spacing: 8) {
HStack {
Text("HEADING")
}
.onTapGesture { isOpen.toggle() }
if isOpen {
VStack { // <<: Here!
Text("Item")
Text("Item")
Text("Item")
Text("Item")
Text("Item")
}
.padding(.leading)
}
Divider()
}
.animation(.default, value: isOpen)
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/361429.html
