栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Swift中的径向渐变背景

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Swift中的径向渐变背景

看看我的RadialGradientLayer的实现,可以随时对其进行修改

class RadialGradientLayer: CALayer {   override init(){        super.init()        needsDisplayonBoundsChange = true    }     init(center:CGPoint,radius:CGFloat,colors:[CGColor]){        self.center = center        self.radius = radius        self.colors = colors        super.init()    }    required init(prer aDeprer: NSCoder) {        super.init()    }    var center:CGPoint = CGPointMake(50,50)    var radius:CGFloat = 20    var colors:[CGColor] = [UIColor(red: 251/255, green: 237/255, blue: 33/255, alpha: 1.0).CGColor , UIColor(red: 251/255, green: 179/255, blue: 108/255, alpha: 1.0).CGColor]    override func drawInContext(ctx: CGContext!) {        CGContextSaveGState(ctx)        var colorSpace = CGColorSpaceCreateDeviceRGB()        var locations:[CGFloat] = [0.0, 1.0]        var gradient = CGGradientCreateWithColors(colorSpace, colors, [0.0,1.0])        var startPoint = CGPointMake(0, self.bounds.height)        var endPoint = CGPointMake(self.bounds.width, self.bounds.height)        CGContextDrawRadialGradient(ctx, gradient, center, 0.0, center, radius, 0)    }}

就我而言,我只需要使用两种颜色,如果需要更多颜色,则需要修改中

location
声明的数组
drawInContext
。同样,在从此类创建对象之后,请不要忘记调用它,
setNeedsDisplay()
否则它将无法正常工作。有时我还需要不同的大小渐变,所以这就是为什么您必须在初始值设定项中传递半径参数以及渐变中心的原因



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/636333.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号