SwiftUI странное представление / поведение кнопки с scaleEffect, влияющим на действие другой кнопки - PullRequest
0 голосов
/ 11 октября 2019

У меня есть вид с кнопкой в ​​верхней панели в стеке:

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])

Пока все хорошо, и это работает, UNLESS:

На мой взгляд, у меня есть 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 от запуска ее действия. ОДНАКО, если я заменю dataModel.progressViewProgress на жестко закодированное число, скажем, 0,01, оно будет работать.

Вот еще одна странная аномалия:

Если я заменю 0,01 на 0,0, то он снова остановитДействие кнопки при срабатывании.

Странно ... Мысли?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...