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

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

Сообщение Anonymous »

Я столкнулся с проблемой при попытке добавить несколько модификаторов 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()
}


Подробнее здесь: https://stackoverflow.com/questions/771 ... lay-glitch
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»