Я пытаюсь узнать, выходит ли элемент за экран моего приложения. Я вижу, что когда мой элемент находится за пределами экрана, onDesappear не запускается. Я не знаю, есть ли другое решение, чтобы вызвать это?
Я привел пример, чтобы объяснить, чего я хочу. У меня есть кружок со смещением, чтобы он в определенной степени вытеснялся из экрана:
struct ContentView: View {
@ObservedObject var location: LocationProvider = LocationProvider()
@State var heading: Double = 0
var body: some View {
ZStack {
Circle()
.frame(width: 30, height: 30)
.background(Color.red)
.clipShape(Circle())
.foregroundColor(Color.clear)
.offset(y: 300)
.border(Color.black)
.rotationEffect(.degrees(self.heading))
.onReceive(self.location.heading) { heading in
self.heading = heading
}
.onDisappear(perform: { print("Desappear") })
Text("\(self.heading)")
}
}
}
Может это возможно с geometryReader?