ios - 如何禁用 SwiftUI 的默认行为?
问题描述
SwiftUI 使构建声明式 UI 变得非常容易。然而,有时他们假设默认值不一定是我们想要的。
例子:
在列表行中添加两个按钮时,SwiftUI 会自动使整行可触摸,并且两个按钮的操作都会在行点击时调用。这是默认行为,如他们的 WWDC 视频中所示。
但我不想要这种行为。我希望两个按钮都能正常工作,并且该行不可点击。
问题:
我们如何告诉我们的鳄梨酱专家(使用 WWDC 参考)停止假设我希望我的列表(或任何其他行为)如何工作?
任何帮助,将不胜感激。
解决方案
如果List
不需要 的默认行为,您可以使用VStack
:
struct ContentView: View {
var body: some View {
VStack {
Button(action: {
print("foo")
}) {
Image(systemName: "photo")
}
Button(action: {
print("bar")
}) {
Image(systemName: "photo")
}
}
}
}
但是,如果List
确实需要,则可以通过编写自定义ListStyle 对其进行自定义。
(也看看这个问题:How to change ListStyle in List。)
这似乎SomethingStyle protocol
是 Apple 希望开发人员用来修改原生 SwiftUI 元素/行为的方式。另一个例子是ButtonStyle或TextFieldStyle等。
推荐阅读
- python - 通过 Python 在 Midi 的特定时间写笔记
- c++ - 读取整数并用它们填充二维数组的函数
- node.js - React Electron ffmpeg-extract-frames 构建错误
- c - C 编程 - 在 main() 之外的函数中收集数据
- oracle - csv 导入 Oracle 表 - 无效数字错误
- build - 如何从 BUILD 文件下载 Bazel 中的文件?
- javascript - JavaScript中嵌套数组的顺序添加
- javascript - 我如何设置间隔不是在第一次加载而是在第二次加载和之后加载
- c++ - 使用不可复制对象的向量
- android - 没有安装应用程序的手机通知?