gpt4 book ai didi

swift - 在 switch 语句中使用 UIColor

转载 作者:搜寻专家 更新时间:2023-10-31 22:50:47 33 4
gpt4 key购买 nike

我的第一个 Controller 中有一个对象数组,我正在传递一个对象以通过模态转场对其进行修改。此模态视图与创建新对象并填充它相同。

在这个模式的 Storyboard 中,我有 3 个 TextField 和 5 个代表颜色的按钮。当用户点击其中一个时,我绘制一个边框以将其标记为已选中。

当我加载此模态视图以修改现有对象时,我需要绘制正确按钮的边框。

我有一个方法可以做到这一点,但它需要参数中的 UIButton 实例。所以我想知道是否可以使用 switch 语句来了解我的对象中的颜色并使用良好的 UIButton 实例调用该函数。

    switch action?.color {
case UIColor.redColor(): setBorderColor(rougeButton)
case UIColor.blueColor(): setBorderColor(bleuButton)
case UIColor.yellowColor(): setBorderColor(jauneButton)
case UIColor.greenColor(): setBorderColor(vertButton)
case UIColor.whiteColor(): setBorderColor(blancButton)
default:
setBorderColor(blancButton)
action?.color = UIColor.whiteColor()
}

提前感谢您的回答!

编辑:

我试着打印这个颜色实例,看看我是否可以用其他方式转换它来使开关工作。

println("\(action?.color)")

打印

Optional(UIDeviceWhiteColorSpace 1 1) // UIColor.whiteColor()
Optional(UIDeviceRGBColorSpace 1 0 0 1) // UIColor.redColor()

所以我不知道我能做什么,因为它返回不同的东西

最佳答案

如您控制台中的输出所示,“color”属性是可选的。您需要:

  1. 找到一种方法避免将其存储为可选
  2. 在 switch 语句之前使用可选链接和可选绑定(bind):

    if let colorUnwrapped = action?.color {
    switch colorUnwrapped {
    //etc

关于swift - 在 switch 语句中使用 UIColor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29259040/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com