如何在UIButton背景中设置两种颜色

时间:2015-10-30 11:39:31

标签: swift swift2 uicolor cgcolor

我想在UIButton背景中设置两种不同的颜色。我知道如何设置一种颜色或边框等。但我不知道如何在背景中设置两种不同的颜色。我举了一个例子。我使用Swift 2

enter image description here

2 个答案:

答案 0 :(得分:7)

您可以使用具有2对重复颜色的渐变:

let gradient: CAGradientLayer = CAGradientLayer()
gradient.frame = button.bounds
gradient.colors = [
    UIColor.greenColor().CGColor,
    UIColor.greenColor().CGColor,
    UIColor.blackColor().CGColor,
    UIColor.blackColor().CGColor
]

/* repeat the central location to have solid colors */
gradient.locations = [0, 0.5, 0.5, 1.0]

/* make it horizontal */
gradient.startPoint = CGPointMake(0, 0.5)
gradient.endPoint = CGPointMake(1, 0.5)

button.layer.insertSublayer(gradient, atIndex: 0)

您可以使用开始/结束点更改演奏方向:

gradient.startPoint = CGPointMake(0, 0)
gradient.endPoint = CGPointMake(1, 1)

enter image description here

答案 1 :(得分:2)

您可以使用CAGradientLayer来制作

let layer : CAGradientLayer = CAGradientLayer()
layer.frame.size = button.frame.size
layer.startPoint = CGPointZero
layer.endPoint = CGPointMake(1, 0)

let colorGreen = UIColor.greenColor().CGColor
let colorBlack = UIColor.blackColor().CGColor

layer.colors = [colorGreen, colorGreen, colorBlack, colorBlack]
layer.locations = [0.0, 0.5, 0.5, 1.0]

button.layer.insertSublayer(layer, atIndex: 0)