带有scaleEffect的SwiftUI奇怪的视图/按钮行为会影响另一个按钮的动作

时间:2019-10-11 13:41:10

标签: swiftui

我在堆栈的顶部栏中有一个带有按钮的视图:

ZStack{
            HStack{
                Spacer()
                Image("navbar-icon")
                Spacer()
            }

            HStack{
                Spacer()

                Button(
                    action: {
                        self.dataModel.resetModelVars()
                        do {
                            try QDB.si.refreshQueries()
                        }catch{
                            print("DB Error for Clear All")
                        }
                    },
                    label: {
                        Text("Reset")//.foregroundColor(Color("TPLink")).font(.system(size: 17))
                    }
                )
           }
        }
        .frame(height: 44, alignment: .center)
        .padding([.horizontal])

到目前为止,一切都很好,并且可以,除非:

在我看来,我有一个environmentObject:

struct LeaderboardView: View {

@EnvironmentObject var dataModel: DM

现在,我正在尝试使用以下方法在视图顶部显示一个进度条小部件:

ZStack(alignment: .center) {
                Rectangle()
                    .fill(Color("TPOrange"))
                    .frame( height: 4.0)
                    .scaleEffect(CGFloat(dataModel.progressViewProgress),anchor: UnitPoint(x: 0.0, y: 0.5))
                    .animation(.easeIn)

                Rectangle()
                    .fill(Color("TPBG"))
                    .frame(height: 4.0)
            }

现在这是奇怪的部分。这将阻止我的navBar按钮触发其动作。但是,如果我用一个硬编码的数字0.01替换dataModel.progressViewProgress,它将起作用。

这是另一个奇怪的异常:

如果将0.01替换为0.0,那么它将再次停止触发按钮动作。

奇怪...有想法吗?

0 个答案:

没有答案