如何在UIColor中使用变量?

时间:2015-05-18 18:00:15

标签: swift variables uicolor

我应该为UIColor()使用什么类型的变量 为什么这个代码不起作用? 我试图使用在不同类中创建的变量作为红色,绿色和蓝色的量。我为所有颜色做了相同的变量,但得到了错误:'额外的参数绿色在调用'

import UIKit

class Color: UIView
{
    var colors = ViewController()

    override func drawRect(rect: CGRect)
    {

        let swiftColor = UIColor(red: 1, green: 165/255, blue: 0, alpha: 1);

        let context = UIGraphicsGetCurrentContext()
        CGContextSetLineWidth(context, 5.0)
        CGContextSetStrokeColorWithColor(context,
            UIColor(red: CGFloat(colors.red1), green: CGFloat(colors.green1), blue: CGFloat(colors.blue1), alpha: 1.0))
        let rectangle = CGRectMake(60,170,200,80)
        CGContextAddRect(context, rectangle)
        CGContextStrokePath(context)
        CGContextSetFillColorWithColor(context,
            UIColor(red: CGFloat(colors.red1), green: CGFloat(colors.green1), blue: CGFloat(colors.blue1), alpha: 1.0))
            CGContextFillRect(context, rectangle)
    }
}

1 个答案:

答案 0 :(得分:2)

试试这个。

class Color: UIView
{
    var colors = ViewController()

    override func drawRect(rect: CGRect)
    {

        let swiftColor = UIColor(red: 1, green: 165/255, blue: 0, alpha: 1);

        let context = UIGraphicsGetCurrentContext()
        CGContextSetLineWidth(context, 5.0)
        CGContextSetStrokeColorWithColor(context,
            UIColor(red: CGFloat(colors.red1), green: CGFloat(colors.green1), blue: CGFloat(colors.blue1), alpha: 1.0).CGColor)
        let rectangle = CGRectMake(60,170,200,80)
        CGContextAddRect(context, rectangle)
        CGContextStrokePath(context)
        CGContextSetFillColorWithColor(context,
            UIColor(red: CGFloat(colors.red1), green: CGFloat(colors.green1), blue: CGFloat(colors.blue1), alpha: 1.0).CGColor)
            CGContextFillRect(context, rectangle)
    }
}

CGContextSetStrokeColorWithColor需要CGColor作为参数,但您提供的是UIColor