停止重复 SwiftUI 的动作的方法
Posted
技术标签:
【中文标题】停止重复 SwiftUI 的动作的方法【英文标题】:Way to stop action repeating SwiftUI 【发布时间】:2021-02-17 21:48:25 【问题描述】:我在测验中使用以下代码,一旦用户回答问题,就会弹出警报。然后他们可以选择转到下一个问题或再次查看该问题,然后在一段时间后出现下一个问题。
我遇到的问题是此操作会继续到下一个问题并在一段时间后跳过它,不允许用户有时间回答它!在以下问题中停止自动重复动作的最佳方法是什么?
func nextTapped()
DispatchQueue.main.asyncAfter(deadline: .now() + 10.0)
nextQuestion()
func continueTapped()
nextQuestion()
.alert(isPresented: $showingFeedback)
Alert(
title: Text(scoreTitle),
message: Text(selectedQuestion!.feedback),
primaryButton: .default(Text("Review"), action: nextTapped),
secondaryButton: .default(Text("Continue"), action: continueTapped)
)
【问题讨论】:
我在这里没有看到任何重复的代码。你能展示更多你的代码吗?理想情况下,一个可重现的例子? 请添加Minimal, Reproducible Example 或更好地解释您的问题。 【参考方案1】:我发现该函数传递到下一个问题。所以我回答了第一个问题,按评论,10 秒后它会自动转到下一个问题。在我按下任何按钮之前,我发现下一个问题也会发生这种情况。我发现在代码中添加 ' -> Void ' 会阻止它。
func nextTapped() -> Void
DispatchQueue.main.asyncAfter(deadline: .now() + 10.0)
nextQuestion()
func continueTapped()
nextQuestion()
【讨论】:
以上是关于停止重复 SwiftUI 的动作的方法的主要内容,如果未能解决你的问题,请参考以下文章
Catalyst 'SwiftUI.AccessibilityNode' 不是已知的可序列化元素
SwiftUI 中的 List 是不是复用类似于 UITableView 的单元格?