创建一个CALayer的子类
以下代码
import UIKit
class GradiantLayer: CALayer {
func frameSetup() -> CGRect {
let frameWidth:CGFloat = superlayer!.frame.width
let frameHeight:CGFloat = superlayer!.frame.height
let frame = CGRectMake(0, 0, frameWidth, frameHeight)
return frame
}
override func drawInContext(ctx: CGContextRef) {
let locations :[CGFloat] = [ 0.5, 0.5,1.0 ]
let colors = [UIColor.clearColor().CGColor,UIColor(red: 0, green: 0, blue: 0, alpha: 0.2).CGColor,UIColor(red: 0, green: 0, blue: 0, alpha: 0.2).CGColor]
let colorspace : CGColorSpaceRef = CGColorSpaceCreateDeviceRGB()!
let gradCenter: CGPoint = CGPointMake(self.bounds.size.width / 2, self.bounds.size.height / 2)
let gradiant2: CGGradientRef = CGGradientCreateWithColors(colorspace, colors as CFArrayRef, locations)!
CGContextDrawRadialGradient(ctx, gradiant2, gradCenter, 0, gradCenter, self.bounds.size.width, CGGradientDrawingOptions.DrawsAfterEndLocation)
}
}
现在在viewcontroller的viewDidLoad中使用下面的方法添加这个外圈
override func viewDidLoad() {
super.viewDidLoad()
let gradiant:GradiantLayer = GradiantLayer()
scrollView?.layer.addSublayer(gradiant)
gradiant.frame = gradiant.frameSetup()
gradiant.setNeedsDisplay()
}