如何在 UIMenu 内的 UIAction 中更改图标颜色? [复制]
Posted
技术标签:
【中文标题】如何在 UIMenu 内的 UIAction 中更改图标颜色? [复制]【英文标题】:How to change icon color in UIAction inside UIMenu? [duplicate] 【发布时间】:2020-11-06 12:44:54 【问题描述】:尝试在 UIAction 中更改图标颜色,但更改色调似乎根本不起作用。有什么想法吗?
let imageView = UIImage(systemName: "eye")!
.withTintColor(.red, renderingMode: .alwaysTemplate)
下面的源代码来自苹果"Adding Menus and Shortcuts to the Menu Bar and User Interface"的例子,只有imageView
是新元素。
func contextMenuActions() -> [UIMenuElement]
let imageView = UIImage(systemName: "eye")?.withTintColor(.red, renderingMode: .alwaysTemplate)
// Actions for the contextual menu, here you apply two actions.
let copyAction = UIAction(title: NSLocalizedString("CopyTitle", comment: ""),
image: imageView,
identifier: UIAction.Identifier(rawValue: "com.example.apple-samplecode.menus.copy")) action in
// Perform the "Copy" action, by copying the detail label string.
if let content = self.detailItem?.description
UIPasteboard.general.string = content
【问题讨论】:
【参考方案1】:您需要使用渲染模式.alwaysOriginal
,因为它们在内部使用UIImageView
,它为所有模板图像应用自己的tintColor
。
所以制作
func contextMenuActions() -> [UIMenuElement]
let imageView = UIImage(systemName: "eye")?.withTintColor(.red,
renderingMode: .alwaysOriginal) // << here !!
给予
使用 Xcode 12.1 测试
【讨论】:
一如既往的好答案!谢谢,阿斯佩里。以上是关于如何在 UIMenu 内的 UIAction 中更改图标颜色? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
如何修改 UIBarButtonItem 和 UIButton 的 UIMenu
iOS 13 - UIMenu 是不是有不显示其图像的错误?