我正在使用 Apple 的 SwiftUI 框架创建一个 iOS 应用程序。因为我需要检测用户是否点击了屏幕的特定区域,所以我显然使用了一个按钮。
问题是该区域包含一个图像和一个文本,并且当按钮自动为其内容赋予蓝色时,图像也被着色,因此它不是图像,而是一个蓝色圆角矩形。
据说一张图片值一千字,我不擅长解释,这里有一个图形演示会发生什么:
发生这种情况是因为按钮正在添加.foregroundColor(.blue)到图像中。
如何避免/禁用按钮向其组件添加样式?
编辑:这是我的按钮代码:
ContentView.swift:
Button(action: {/* other code */}) {
PackageManagerRow(packageManager: packageManagersData[0])
}
Run Code Online (Sandbox Code Playgroud)
PackageManagerRow.swift:
struct PackageManagerRow : View {
var packageManager : PackageManager
var body: some View {
VStack {
HStack {
Image(packageManager.imageName)
.resizable()
.frame(width: 42.0, height: 42.0)
Text(verbatim: packageManager.name)
Spacer()
Image(systemName: "checkmark")
.foregroundColor(.blue)
.opacity(0)
}.padding(.bottom, 0)
Divider()
.padding(.top, -3)
}
}
}
Run Code Online (Sandbox Code Playgroud)
Fog*_*ter 10
我认为这是来自您正在使用的图像的渲染模式。
你在哪里Image("Cydia logo")(或其他)。
您应该设置渲染模式,例如...
Image("Cydia Logo").renderingMode(.original)
Run Code Online (Sandbox Code Playgroud)
Ccl*_*emm 10
PlainButtonStyle()您还可以向按钮添加以避免 iOS 风格的行为。
与你的例子类似:
Button(action: {/* other code */}) {
PackageManagerRow(packageManager: packageManagersData[0])
}.buttonStyle(PlainButtonStyle())
Run Code Online (Sandbox Code Playgroud)
我希望它能帮助你!
| 归档时间: |
|
| 查看次数: |
3124 次 |
| 最近记录: |