无法将“颜色”类型的值分配给“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 类型