【问题标题】:UIColor Made of VariablesUIColor 由变量组成
【发布时间】:2014-10-15 23:21:48
【问题描述】:

我正在尝试在 iOS 中制作一个具有三个滑块的 Swift 应用程序,每个滑块对应一个红色、绿色和蓝色。每次移动滑块时,都会将当前值分配给一个变量。我的问题是我想将背景颜色设置为已设置的变量。我熟悉的语法是,

view.backgroundColor = UIColor(red: 102/255.0, green: 204/255.0, blue: 255/255.0, alpha: 1.0)

所以我想在脑海中做的事情看起来像,

view.backgroundColor = UIColor(red: returnedValueOfRedSlider/255.0, green: returnedValueOfGreenSlider/255.0, blue: returnedValueOfBlueSlider/255.0, alpha: 1.0)

但很明显,这是一个很大的禁忌。那么如何使用变量来使 UIColor 分配给 backgroundColor?

谢谢,

【问题讨论】:

  • 出于好奇,“大忌”是怎么回事?
  • 问题只是将从滑块返回的数字转换为浮点数之一吗?请记住,Swift 不会自动进行这种转换。
  • 加里——我不这么认为。它应该能够接受 Int 因为默认语法看起来像 view.backgroundColor = UIColor(red: 100/255.0, (等等) )
  • Swift 对待整数字面量与整数实例不同。文字可以无缝转换为基本上任何数字类型。

标签: ios iphone xcode swift uicolor


【解决方案1】:

为了让它干净/可读,为什么不这样:

let red   = CGFloat(returnedValueOfRedSlider/255)
let green = CGFloat(returnedValueOfGreenSlider/255)
let blue  = CGFloat(returnedValueOfBlueSlider/255)
view.backgroundColor = UIColor(red: red, green: green, blue: blue, alpha: 1.0)

【讨论】:

  • 非常感谢内特!我不知道您必须将 Int 转换为 CGFloats。再次感谢您!
  • @JackVaughn,通过勾选他的答案旁边的空心复选标记将其变为绿色来接受 Nate 的答案。
  • @JackVaughn,如果您按命令单击一个类型(如UIColor),您将看到其标头声明的 Swift 版本。这将告诉您它期望每个参数的类型,这有助于深入了解隐秘的编译器消息。
  • 另外,如果您只输入UIColor(,命令完成也会显示类型。
  • @vacawama,谢谢!这是我第一次在论坛上提问。我通常可以从以前的帖子中找到我想要的东西,但是谢谢你们!
【解决方案2】:

您可以将参数转换为 CGFloats。

view.backgroundColor = UIColor(
    red: CGFloat(returnedValueOfRedSlider/255.0),
    green: CGFloat(returnedValueOfGreenSlider/255.0),
    blue: CGFloat(returnedValueOfBlueSlider/255.0),
    alpha: 1.0)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多