我正在使用Apple的SwiftUI框架创建一个iOS应用。当我需要检测用户是否在屏幕的特定区域上点击时,我显然使用了一个按钮。
问题在于该区域包含一个“图像”和一个“文本”,并且当按钮自动为其内容赋予蓝色时,该图像也会被着色,因此它不是一个图像,而是一个蓝色的圆角矩形。
据说一张图像值一千个单词,正如我不善于解释,这里有一个图形显示了发生的情况:
按钮外(无按钮样式)
按钮内(带有按钮样式)
发生这种情况是因为该按钮正在向图像添加.foregroundColor(.blue)
。
如何避免/禁用按钮添加样式到其组件?
编辑:这是我的按钮代码:
ContentView.swift:
Button(action: {/* other code */}) {
PackageManagerRow(packageManager: packageManagersData[0])
}
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)
}
}
}
最佳答案
我认为这是从您正在使用的图像的渲染模式得出的。
您有Image("Cydia logo")
(或其他任何代码)的位置。
您应该将渲染模式设置为...
Image("Cydia Logo").renderingMode(.original)
关于ios - 避免在SwiftUI中使用按钮样式化其内容,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56931932/