【问题标题】:'Color' to expected argument type 'UIColor?'“颜色”到预期的参数类型“UIColor?”
【发布时间】:2021-09-13 05:06:11
【问题描述】:

我试图用扩展名更改颜色,但它给出了错误。 我们如何解决这个错误。

我写扩展如下。

extension Color{
    static let enqueOrange = Color("Organgecolor")
}

日历查看代码:

struct CalendarView: View {
    var number : String
    var days : String
    var color : UIColor
    var textcolor : UIColor
    
    var body: some View {
        VStack{
            Text(self.number)
                .font(.system(size: 20, weight: .bold, design: .rounded))
                .foregroundColor(Color(self.textcolor))
            Text(self.days)
                .font(.headline)
                .foregroundColor(Color(self.textcolor))
        }.padding([.top,.bottom], 10)
            .padding([.leading,.trailing],10)
            .background(Color(self.color))
            .cornerRadius(30)
    }
}

【问题讨论】:

  • 要么使 CalendarView 的 color 属性采用 Color(不是 UIColor),要么采用 UIColor(self.days......)
  • 给出错误,无法推断复杂的闭包返回类型;添加显式类型以消除歧义

标签: ios iphone colors swiftui


【解决方案1】:

似乎您的 CalendarView 接受 UIColor 作为参数。如果是自定义视图,您可以将自定义视图属性 color: UIColor 更改为 color: Color,或者您可以更改您的

color: self.days[i].isToday? Color.enqueOrange : .white 

color: self.days[i].isToday? UIColor(Color.enqueOrange) : UIColor(.white)

【讨论】:

  • 给出错误,无法推断复杂的闭包返回类型;添加显式类型以消除歧义
  • 我可以得到你的CalendarView的代码吗?
  • 您提供的代码对我来说可以正常工作。您可以尝试将var color : Color 更改为CalendarView
猜你喜欢
  • 2021-07-06
  • 1970-01-01
  • 1970-01-01
  • 2023-04-07
  • 1970-01-01
  • 2021-08-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多