无法将“颜色”类型的值分配给“UIColor”类型

Posted

技术标签:

【中文标题】无法将“颜色”类型的值分配给“UIColor”类型【英文标题】:Cannot assign value of type 'Color' to type 'UIColor' 【发布时间】:2020-07-21 20:08:43 【问题描述】:

当我在 UITextViewWrapper 类中设置 textField.textColor = Color.primary 时,会出现此错误。

如何在 UITextViewWrapper 中使用原色?有什么方法可以使用吗?

fileprivate struct UITextViewWrapper: UIViewRepresentable 
    typealias UIViewType = UITextView

    func makeUIView(context: UIViewRepresentableContext<UITextViewWrapper>) -> UITextView 
        let textField = UITextView()
        textField.textColor = Color.primary // here give error
        return textField
    
          
 

【问题讨论】:

SwiftUI.Color != UIKit.UIColor。见https://***.com/questions/57257704/how-can-i-change-a-swiftui-color-to-uicolor。 在这里,我想要一个解决方案来获得此解决方案中不可用的原色。如果缺少任何内容,您可以编辑问题。谢谢! @Ashish 我在下面的解决方案中提供了 ios 14 的初始化程序和较低版本的替代方案。 【参考方案1】:

在 iOS 14+ 上,您可以使用新的 UIColor 初始化程序。

textField.textColor = UIColor(Color.primary)

对于较低版本,您可以使用:

textField.textColor = UIColor.label // gives the same result

【讨论】:

【参考方案2】:

    扩展 UIColor:

    extension UIColor 
        class var primary: UIColor 
            return UIColor(named: "YourColorName")!
        
    
    

    用法:

    textField.textColor = .primary
    

【讨论】:

以上是关于无法将“颜色”类型的值分配给“UIColor”类型的主要内容,如果未能解决你的问题,请参考以下文章

无法将类型“AppDelegate”的值分配给类型“CLLocationManagerDelegate?”

无法将类型“类”的值分配给类型“[类]”

无法将类型 [NSObject] 的值分配给类型 NSObject

无法将 CKAsset 类型的值分配给 UIImage 类型

无法将“String”类型的值分配给“MyOrderTableViewCell”类型

PromiseKit 无法将类型 '[Result<TYPE>]' 的值分配给类型 '[TYPE]