Я использую TipKit в своем приложении для iOS 16+, чтобы показывать пользователю подсказки по использованию. Поскольку TipKit доступен в iOS 17+, я использую оболочку на основе протокола, показанную ниже.
Хотя отображение подсказок в целом работает нормально, я заметил, что подсказки продолжают появляться снова, пока они не будут активно закрыты с помощью кнопки X-закрыть внутри подсказки. Хотя нажатие снаружи также отклоняет подсказку, его, по-видимому, недостаточно, чтобы пометить подсказку как отображаемую и предотвратить ее повторное отображение.
Это обычное/предполагаемое поведение или проблема с моей настройкой?
Есть ли способ использовать нажатие снаружи, чтобы предотвратить многократное отображение подсказок?
Советы должны быть как можно меньше раздражающими. Таким образом, простого касания снаружи должно быть достаточно, чтобы они больше не появлялись.
Полная настройка:
/// Protocol for ensuring compatibility.
/// Enables tips to be passed and stored as properties without availability issues.
@available(iOS, obsoleted: 17, message: "This will be removed once we only support iOS 17+")
public protocol TipSupport {
@available(iOS 17, *)
var tip: AnyTip { get }
}
@available(iOS 17, *)
public extension Tip where Self: TipSupport {
var tip: AnyTip { AnyTip(self) }
}
public extension View {
/// Helper for making the `popupTip` modifier available for iOS some View {
if #available(iOS 17, *), let tip = tipSupport?.tip {
self.popoverTip(tip, arrowEdge: arrowEdge)
} else {
self
}
}
}
Теперь я могу использовать подсказки в своем коде:
struct TipTestView: View {
// let sampleTip = SampleTip()
var body: some View {
Text("Hello, World!")
.popupTip(SampleTip())
//.popupTip(sampleTip) // no difference
}
}
struct SampleTip: Tip, TipSupport {
var id: String { "SampleTip" }
var title: Text {
Text("Some Title")
}
var message: Text? {
Text("More information")
}
var image: Image? {
Image(systemName: "hand.tap")
}
}
TipKit настроен в настройках моего приложения:
.task {
if #available(iOS 17, *) {
#if DEBUG
//try? Tips.resetDatastore()
#endif
try? Tips.configure([
.datastoreLocation(.applicationDefault),
.displayFrequency(.immediate)
])
}
}
Подробнее здесь: https://stackoverflow.com/questions/798 ... ping-outsi
Можно ли навсегда закрыть подсказку TipKit или пометить ее как отображаемую, нажав за пределами подсказки? ⇐ IOS
Программируем под IOS
1767492349
Anonymous
Я использую TipKit в своем приложении для iOS 16+, чтобы показывать пользователю подсказки по использованию. Поскольку TipKit доступен в iOS 17+, я использую оболочку на основе протокола, показанную ниже.
Хотя отображение подсказок в целом работает нормально, я заметил, что подсказки продолжают появляться снова, пока они не будут активно закрыты с помощью кнопки X-закрыть внутри подсказки. Хотя нажатие снаружи также отклоняет подсказку, его, по-видимому, недостаточно, чтобы пометить подсказку как отображаемую и предотвратить ее повторное отображение.
Это обычное/предполагаемое поведение или проблема с моей настройкой?
Есть ли способ использовать нажатие снаружи, чтобы предотвратить многократное отображение подсказок?
Советы должны быть как можно меньше раздражающими. Таким образом, простого касания снаружи должно быть достаточно, чтобы они больше не появлялись.
Полная настройка:
/// Protocol for ensuring compatibility.
/// Enables tips to be passed and stored as properties without availability issues.
@available(iOS, obsoleted: 17, message: "This will be removed once we only support iOS 17+")
public protocol TipSupport {
@available(iOS 17, *)
var tip: AnyTip { get }
}
@available(iOS 17, *)
public extension Tip where Self: TipSupport {
var tip: AnyTip { AnyTip(self) }
}
public extension View {
/// Helper for making the `popupTip` modifier available for iOS some View {
if #available(iOS 17, *), let tip = tipSupport?.tip {
self.popoverTip(tip, arrowEdge: arrowEdge)
} else {
self
}
}
}
Теперь я могу использовать подсказки в своем коде:
struct TipTestView: View {
// let sampleTip = SampleTip()
var body: some View {
Text("Hello, World!")
.popupTip(SampleTip())
//.popupTip(sampleTip) // no difference
}
}
struct SampleTip: Tip, TipSupport {
var id: String { "SampleTip" }
var title: Text {
Text("Some Title")
}
var message: Text? {
Text("More information")
}
var image: Image? {
Image(systemName: "hand.tap")
}
}
TipKit настроен в настройках моего приложения:
.task {
if #available(iOS 17, *) {
#if DEBUG
//try? Tips.resetDatastore()
#endif
try? Tips.configure([
.datastoreLocation(.applicationDefault),
.displayFrequency(.immediate)
])
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79859640/can-a-tipkit-tip-be-permanently-dismissed-marked-as-displayed-by-tapping-outsi[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия