Как в TipKit создать плавающую подсказку, указывающую на элемент формы?

Я использую TipKit для показа подсказок. У меня есть форма, в которой есть изображение, и я хочу показать подсказку, позволяющую пользователю нажать на нее, чтобы изменить изображение.

      struct TapToSelectImageTip: Tip {
    var id = UUID()
    
    var title: Text {
        Text("Tap to Select Image")
    }
    var message: Text? {
        Text("This is the background for your setting. Tap to select it from your photo library or other places.")
    }
    var asset: Image? {
        Image(systemName: "photo")
    }
}

struct SettingEditView : View {
    @Binding var editValue: DialogSetting

    var tapToSelectImageTip = TapToSelectImageTip()
    
    var body: some View {
        VStack {
            List {
                Section("Background image") {
                    VStack {
                        ImportedImageView(imageID: $editValue.backgroundImage)
                            .frame(maxWidth: .infinity)
                        TipView(tapToSelectImageTip, arrowEdge: .top)
                    }
                }
            }
        }
    }
}

Когда подсказка не отображается, изображение заполняет раздел «Форма»:

Когда отображается подсказка, контейнер расширяется, показывая подсказку на белом фоне.

Как я могу заставить кончик плавать над контейнером и оставить размер контейнера незатронутым тем, отображается ли кончик?

1 ответ

Использовать.popoverTip:

      ImportedImageView(imageID: $editValue.backgroundImage)
  .frame(maxWidth: .infinity)
  .popoverTip(tapToSelectImageTip)

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