相关疑难解决方法(0)

SwiftUI 动态添加子视图但动画不起作用

我想在 SwiftUI 中创建一个视图,动态添加一个带有动画的子视图。

struct ContentView : View {
    @State private var isButtonVisible = false

    var body: some View {
        VStack {
            Toggle(isOn: $isButtonVisible.animation()) {
                Text("add view button")
            }

           if isButtonVisible {
                 AnyView(DetailView())
                      .transition(.move(edge: .trailing))
                      .animation(Animation.linear(duration: 2))
             }else{
                    AnyView(Text("test"))
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

上面的代码可以很好地处理动画。但是,当我将视图选择部分移动到函数中时,动画不再起作用(因为我想动态添加不同的视图,因此,我将逻辑放在一个函数中。)


struct ContentView : View {
    @State private var isButtonVisible = false
    var body: some View {
        VStack {
            Toggle(isOn: $isButtonVisible.animation()) {
                Text("add view button")
            }

            subView().transition(.move(edge: .trailing))
                     .animation(Animation.linear(duration: 2))   
    }

     func subView() -> some View {
         if …
Run Code Online (Sandbox Code Playgroud)

iphone ios swift swift5 swiftui

4
推荐指数
1
解决办法
3841
查看次数

在 SwiftUI 视图中使用开关/枚举

从 Xcode 11.4 开始,SwiftUI 不允许switch在 Function builder 块中使用语句,如VStack {},失败并出现一般错误,如Generic parameter 'Content' could not be inferred. 如何switch在 SwiftUI 中使用该语句根据枚举值创建不同的视图?

swiftui

1
推荐指数
1
解决办法
1901
查看次数

标签 统计

swiftui ×2

ios ×1

iphone ×1

swift ×1

swift5 ×1