按钮SwiftUi内图像的背景颜色问题

Posted

技术标签:

【中文标题】按钮SwiftUi内图像的背景颜色问题【英文标题】:Issue with background color of an image inside a button SwiftUi 【发布时间】:2019-10-22 06:09:06 【问题描述】:

按钮内的图像显示为蓝色。我不知道如何解决它。

Button(action: self.count += 1) 
    Circle()
        .fill(LinearGradient(gradient: Gradient(colors: [Color("linkAccount1"), Color("linkAccount2")]), startPoint: UnitPoint(x: 0, y: 0.2), endPoint: UnitPoint(x: 1, y: 1)))
        .frame(width: 80, height: 80)
        .shadow(color: Color("shadowColor1"), radius: 7, y: 7)
        .overlay(
            //issue with image backgroud or foregroundColor
            Image("linkAccount")
                .resizable()
                .aspectRatio(contentMode: .fit)
                .frame(width: 60, height: 60))

解决方案: Image("linkAcount").renderingMode(.original)

【问题讨论】:

试试Image("linkAcount").renderingMode(.original) 这应该可以去除色调。 @Andrew 谢谢! 【参考方案1】:

根据我上面的评论,问题是由图像的渲染模式引起的。

您可以通过使用.renderingMode() 修饰符并将模式设置为.original 来克服着色问题。这告诉图像忽略色调。

 Image("linkAcount").renderingMode(.original)

【讨论】:

【参考方案2】:

按钮中包含的图像和文本以强调色呈现,默认为蓝色,只需应用:

.accentColor(.white)

到您的 Button 以将图像绘制为白色。

【讨论】:

以上是关于按钮SwiftUi内图像的背景颜色问题的主要内容,如果未能解决你的问题,请参考以下文章

在 SwiftUI 中点击更改按钮背景颜色

SwiftUI:将背景颜色应用于圆角矩形

SwiftUI 中的按钮大小和颜色

在swift UI中点击按钮时如何更改背景颜色和图像?

SwiftUI 多行文本背景颜色

Swiftui 将列表叠加到背景颜色