ios 如何创建具有多色标签的SwiftUI菜单

ovfsdjhp  于 12个月前  发布在  iOS
关注(0)|答案(1)|浏览(107)

我希望SFSymbol为蓝色,文本为黑色。但是当传递给标签时,整个文本的颜色都变为蓝色。
我看到了一个自定义MenuStyle的例子,用于在菜单标签上设置自定义背景和前景色。我可以用它来创建一个多颜色的菜单项标签吗?

Menu {
  Button("Title 1", action: {})
  Button("Title 2", action: {})
} label: {
  Text("Share") + Text(Image(systemName: "square.and.arrow.up")).foregroundColor(.red)
}
1dkrff03

1dkrff031#

您可以通过为文本和SF符号图像设置不同的前景样式来轻松自定义按钮的外观。下面是更新的代码:

Menu {
    Button("Title 1", action: {})
    Button("Title 2", action: {})
} label: {
    Text("Share")
        .foregroundStyle(.black)
    + Text(Image(systemName: "square.and.arrow.up"))
        .foregroundStyle(.blue)
}

值得一提的是,类似地,您可以将各种修饰符应用于不同的文本片段,然后将它们合并组合成单个标签,如下所示:

Text("Black Text")
   .foregroundStyle(.black)
   .font(.title)
+ Text(" Blue Text")
   .foregroundColor(.blue)
   .fontWeight(.bold)

注意:.foregroundColor将在未来的iOS版本中被弃用,因此使用.foregroundStyle代替。

相关问题