ios - 点击 PresentationLink (SwiftUI) 时如何禁用闪烁?
问题描述
点击按钮时如何禁用突出显示的颜色?
现在,当我点击它时,它会变灰并调用该操作,但我想禁用它。目前有可能吗?
PresentationLink(destination: NextView()) {
....
}
解决方案
PresentationView
似乎没有设置按钮样式的方法,我怀疑它永远不会。但是,还有其他方法可以呈现视图。下面你有一个可以避免这种影响的例子。它有点冗长,但它会满足您的目的。
从 beta3 开始,模态似乎有一个错误,并且永远不会调用 onDismiss 方法。所以很难正确重置 isPresented 变量。与此同时,我为此使用了一种解决方法。检查这个答案: https ://stackoverflow.com/a/56939555/7786555
struct ContentView : View {
@State var isPresented = false
var body: some View {
VStack(spacing: 30) {
// Option #1, with blink
PresentationLink(destination: NextView(), label: {
Text("Click to show")
})
// Option #2, without blink
Text("Click to show").color(.blue).tapAction { self.isPresented = true }
.presentation(isPresented ? Modal(NextView()) : nil)
}
}
}
struct NextView: View {
var body: some View {
Text("aloha!")
}
}
推荐阅读
- html - 如何将div分配给文本
- matlab - 如何准确传递 MATLAB 回调的函数句柄?
- c# - 不应存在的索引异常
- javascript - 当提供箭头函数时,如何在 Array.prototype.forEach 中解决“this”?
- c# - 如何在 c# 中修复合并排序的这个实现
- java - Java - 从另一个类输入字符串时出现 MalformedURLException,但在将相同的字符串粘贴到
- angular - Angular:如何避免本地存储中的重复条目
- angular - 测试拦截器的响应处理
- c++ - 如何为 CLion 中的每个配置定义预处理器定义?
- html - 搜索按钮显示搜索表单后将焦点移至搜索框