XCode (Bug?) (SwiftUI): invece di ridimensionare e modificare l'opacità dove si trovano, le mie visualizzazioni arrivano dal bordo dello schermo
Sto cercando di avere un cerchio sul mio schermo con due cerchi dietro di esso in uno ZStack che si avvicina e si allontana con ScaleEffect () e cambia l'opacità. L'ho creato in un file SwiftUI separato, dove sembrava che non ci fossero problemi, ma una volta inserito nel mio ContentView () è sembrato che si verificasse questo strano bug.
Ignora i cerchi sullo sfondo, questa è solo la mia vista sullo sfondo. Ma vedi quei due cerchi di sfumature di blu leggermente diverse? Continuano a entrare e uscire dallo schermo, passando dietro l'icona blu scuro "più" e poi uscendo di nuovo. Nel frattempo, vorrei che si trovassero semplicemente dietro il cerchio "più".
inserisci qui la descrizione dell'immagine
inserisci qui la descrizione dell'immagine
inserisci qui la descrizione dell'immagine È a causa di qualche tipo di bug di XCode? O ho scritto qualcosa di sbagliato nel mio codice? Apprezzerei davvero se qualcuno potesse chiarire :)
Ecco il mio codice. Ho creato un pulsante di var privato @StateIsAnimating e l'ho impostato su false, e ho detto che una volta visualizzato il pulsante, i cerchi dovrebbero iniziare ad animarsi. C'è qualcosa che non va nel codice?
ZStack {
Group {
Circle()
.fill(Color("Background2").opacity(self.buttonIsAnimating ? 0.6 : 0))
.frame(width: 75, height: 75, alignment: .center)
.scaleEffect(self.buttonIsAnimating ? 1 : 0)
Circle()
.fill(Color("Background3").opacity(self.buttonIsAnimating ? 0.7 : 0))
.frame(width: 89, height: 89, alignment: .center)
.scaleEffect(self.buttonIsAnimating ? 1 : 0)
}
.animation(Animation.easeInOut(duration: 2).repeatForever(autoreverses: true))
Button(action: {
self.showingAddANewToDoView.toggle()
}) {
Image(systemName: "plus.circle.fill")
.resizable()
.scaledToFit()
.background(Circle().fill(Color("Background")))
.foregroundColor(Color("Background4"))
.frame(width: 60, height: 60)
.padding(5)
}//: Button
.onAppear {
self.buttonIsAnimating.toggle()
}
}
Risposte
Prova con l'animazione del link per dichiarare, come
Group {
Circle()
.fill(Color("Background2").opacity(self.buttonIsAnimating ? 0.6 : 0))
.frame(width: 75, height: 75, alignment: .center)
.scaleEffect(self.buttonIsAnimating ? 1 : 0)
Circle()
.fill(Color("Background3").opacity(self.buttonIsAnimating ? 0.7 : 0))
.frame(width: 89, height: 89, alignment: .center)
.scaleEffect(self.buttonIsAnimating ? 1 : 0)
}
.animation(Animation.easeInOut(duration: 2).repeatForever(autoreverses: true),
value: self.buttonIsAnimating)