Несколько модификаторов PopoverTip в SwiftUI: постоянный сбой отображения

Я столкнулся с проблемой при попытке добавить несколько модификаторов popoverTip в свой код SwiftUI. Независимо от того, указано ли правило или параметр, подсказки начинают постоянно появляться и исчезать. Это признанная проблема? Как мы можем последовательно отображать несколько всплывающих подсказок в сложных представлениях? Даже если один совет признан недействительным, сбой сохраняется. Следует ли использовать это только для представлений без каких-либо обновлений состояния?

Вот пример кода, демонстрирующий проблему:

      import SwiftUI
import TipKit

@main
struct testbedApp: App {
    var body: some Scene {
        WindowGroup {
          ContentView()
        }
    }
  
  init() {
    try? Tips.configure()
  }
}

struct PopoverTip1: Tip {
    var title: Text {
        Text("Test title 1").foregroundStyle(.indigo)
    }

    var message: Text? {
        Text("Test message 1")
    }
}

struct PopoverTip2: Tip {
    var title: Text {
        Text("Test title 2").foregroundStyle(.indigo)
    }

    var message: Text? {
        Text("Test message 2")
    }
}

struct ContentView: View {
    private let timer = Timer.publish(every: 0.001, on: .main, in: .common).autoconnect()
  
    @State private var counter = 1
    
    var body: some View {
        VStack(spacing: 20) {
            Spacer()
            Text("Counter value: \(counter)").popoverTip(PopoverTip1())
            Spacer()
            Text("Counter value multiplied by 2: \(counter * 2)")
                .foregroundStyle(.tertiary)
                .popoverTip(PopoverTip2())
            Spacer()
        }
        .padding()
        .onReceive(timer) { _ in
          counter += 1
        }
    }
}

#Preview {
    ContentView()
}

0 ответов

Другие вопросы по тегам