SwiftUI - 如何在文本视图中更改自定义 SF 符号的颜色?
Posted
技术标签:
【中文标题】SwiftUI - 如何在文本视图中更改自定义 SF 符号的颜色?【英文标题】:SwiftUI - How to change the color of a custom SF symbol in a Text View? 【发布时间】:2021-05-13 08:38:08 【问题描述】:所以,我在 SwiftUI 视图中有一个文本,其中有一个自定义 SF 符号:
Text("This is some text with a \(Image(uiImage: UIImage(named: "customSFSymbol")!)) symbol.")
问题如下:
我想让所有视图都变成白色,但是当我将 .foregroundColor(Color.white)
添加到视图时,SF 符号保持黑色。
你可以看到它现在的样子here
提前感谢您的帮助!
【问题讨论】:
如果你使用.withTintColor(_:renderingMode:)
会发生什么,像这样:.withTintColor(UIColor.white, renderingMode: .alwaysOriginal)
?
您可以将.renderingMode(.template)
添加到Image
=>Text("This is some text with a \(Image(uiImage: UIImage(named: "customSFSymbol")!).renderingMode(.template)) symbol.")
非常感谢@CédricBhr!效果很好!
【参考方案1】:
您可以简单地将.renderingMode(.template)
添加到Image
Text("This is some text with a \(Image(uiImage: UIImage(named: "customSFSymbol")!).renderingMode(.template)) symbol.")
【讨论】:
【参考方案2】:你可以这样使用
struct ContentView: View
var body: some View
Text("This is some text with a ").foregroundColor(Color.red) + imageText + Text("symbol.").foregroundColor(Color.red)
@ViewBuilder
var imageText: Text
Text("\(Image(systemName: "square.and.pencil"))")
.foregroundColor(Color.blue)
【讨论】:
以上是关于SwiftUI - 如何在文本视图中更改自定义 SF 符号的颜色?的主要内容,如果未能解决你的问题,请参考以下文章
如何实现一个自定义属性包装器,它将发布 SwiftUI 的更改以重新呈现它的视图