ios - 无法将函数转换为方形颜色

标签 ios swift user-interface uikit

我想我已经了解了 Swift 编程语言的基础知识,所以现在我一直在尝试更进一步。今天早些时候,我读到一个关于如何生成随机颜色的问题,所以我尝试使用该函数在我的空白方 block (UIView) 中着色。

import UIKit

func generateColors() -> (main: UIColor, diff: UIColor) {

    let redMain: CGFloat = CGFloat(arc4random_uniform(104))
    let greenMain: CGFloat = redMain + 105.0
    let blueMain: CGFloat = redMain + 83.0

    let redColorMain: CGFloat = redMain / 255.0
    let greenColorMain: CGFloat = greenMain / 255.0
    let blueColorMain: CGFloat = blueMain / 255.0
    let main = UIColor(red: redColorMain, green: greenColorMain, blue: blueColorMain, alpha: 0.8)

    let redDiff: CGFloat = CGFloat(arc4random_uniform(104))
    let greenDiff: CGFloat = redDiff + 105.0
    let blueDiff: CGFloat = redDiff + 83.0

    let redColorDiff: CGFloat = redDiff / 255.0
    let greenColorDiff: CGFloat = greenDiff / 255.0
    let blueColorDiff: CGFloat = blueDiff / 255.0
    let diff = UIColor(red: redColorDiff, green: greenColorDiff, blue: blueColorDiff, alpha: 0.8)

    return (main, diff)
}

var square: UIView = UIView(frame: CGRect(x: 0, y: 0, width: 150, height: 150))
square.backgroundColor = generateColors()

我试了很多东西,我觉得最后好像是函数里的参数。我是否必须以特定方式调用 main 或 diff,以便尝试显而易见的事情。

最佳答案

我不了解 Swift 但 a cursory look at UIView docs建议 backgroundColor 只是一种颜色,而不是一对,除非有一些我不知道的语言。所以不是一对尝试:

return main;

或者:

return diff;

然后将您的函数返回类型更改为单一颜色,无论其语法是什么(我假设是 func generateColors() -> UIColor {)。

希望对您有所帮助...

关于ios - 无法将函数转换为方形颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34376609/

相关文章:

ios - 用于 Xcode 托管配置文件设置的 Azure Pipelines 配置 - 可能吗?记录在案?

ios - SplitViewController 只显示白屏

ios - 不同的 AES 加密器给我不同的结果……为什么?

user-interface - GUI的自动化测试

python - 可执行的 python 程序 - 禁用 cmd 行?

ios - 使用 TesseractOCR 的链接器命令失败,退出代码为 1(使用 -v 查看调用)

ios - Alamofire POST 方法中的 POST 对象数组 - Swift/IOS

ios - 在多个 TextField 中填充数据(数字)之前,如何禁用 UIButton?

python - 是否有适用于 Python 的 "nice to program"GUI 工具包?

ios - Apple 的静默推送通知能否在后台启动我的应用程序?