Как узнать, выходит ли элемент за экран в swiftUI? - PullRequest
0 голосов
/ 13 июля 2020

Я пытаюсь узнать, выходит ли элемент за экран моего приложения. Я вижу, что когда мой элемент находится за пределами экрана, 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?

...