I\'m trying to draw a gradient to UILabel, but it draws only the colors I can\'t see the text. I saw the code from here StackOverflow
my modification:
add a view, modify draw rect with below code.
override func drawRect(rect: CGRect) {
// Drawing code
let currentContext = UIGraphicsGetCurrentContext()
CGContextSaveGState(currentContext);
let colorSpace = CGColorSpaceCreateDeviceRGB()
let startColor = UIColor(red: 0.1, green: 0.0, blue: 0.0, alpha: 0.0)
let startColorComponents = CGColorGetComponents(startColor.CGColor)
let middleColor = UIColor(red: 0.0, green: 0.0, blue: 0.0, alpha: 0.2)
let middleColorComponents = CGColorGetComponents(middleColor.CGColor)
let lowerMiddleColor = UIColor(red: 0.0, green: 0.0, blue: 0.0, alpha: 0.3)
let lowerMiddleColorComponents = CGColorGetComponents(lowerMiddleColor.CGColor)
let endColor = UIColor(red: 0.0, green: 0.0, blue: 0.0, alpha: 0.5)
let endColorComponents = CGColorGetComponents(endColor.CGColor)
var colorComponents = [startColorComponents[0], startColorComponents[1], startColorComponents[2], startColorComponents[3], middleColorComponents[0], middleColorComponents[1], middleColorComponents[2], middleColorComponents[3], lowerMiddleColorComponents[0], lowerMiddleColorComponents[1], lowerMiddleColorComponents[2], lowerMiddleColorComponents[3], endColorComponents[0], endColorComponents[1], endColorComponents[2], endColorComponents[3]]
var locations:[CGFloat] = [0.0, 0.6, 0.8, 1.0]
let gradient = CGGradientCreateWithColorComponents(colorSpace,&colorComponents,&locations,4)
let startPoint = CGPointMake(0, 0)
let endPoint = CGPointMake(0, self.bounds.height)
CGContextAddRect(currentContext, CGRect(x: 0, y: 0, width: self.bounds.width, height: self.bounds.height));
CGContextClip(currentContext);
CGContextDrawLinearGradient(currentContext,gradient,startPoint,endPoint, CGGradientDrawingOptions.DrawsBeforeStartLocation)
CGContextRestoreGState(currentContext)
}
Now in storyboard add a view change class to your gradient class and add a label to this view.
See if it works for you.