首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >初始化(colorLiteralRed:,green:,blue:,alpha:)在Swift 4中已弃用

初始化(colorLiteralRed:,green:,blue:,alpha:)在Swift 4中已弃用
EN

Stack Overflow用户
提问于 2017-07-28 05:59:07
回答 4查看 14.7K关注 0票数 36
代码语言:javascript
复制
let startingColorOfGradient = UIColor(colorLiteralRed: 255/255, green: 
255/255, blue: 255/255, alpha: 1.0).cgColor
let endingColorOFGradient = UIColor(colorLiteralRed: 251/255, green: 
247/255, blue: 234/255, alpha: 1.0).cgColor
let gradient: CAGradientLayer = CAGradientLayer()

错误:

在Swift 4.0 (Swift._ExpressibleByColorLiteral)中,

'init(colorLiteralRed:green:blue:alpha:)‘已被废弃

如果init(colorLiteralRed:,green:,blue:,alpha:)在Swift 4中被弃用,我该如何使用渐变颜色?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2017-07-28 07:26:52

init(colorLiteralRed:green:blue:alpha:)旨在与由开发工具管理的颜色文字一起使用。

为什么不使用普通的init(red:green:blue:alpha:)

代码语言:javascript
复制
let startingColorOfGradient = UIColor(red: 255.0/255.0, green:
    255.0/255.0, blue: 255.0/255.0, alpha: 1.0).cgColor
let endingColorOFGradient = UIColor(red: 251.0/255.0, green:
    247.0/255.0, blue: 234.0/255.0, alpha: 1.0).cgColor
let gradient: CAGradientLayer = CAGradientLayer()

(在上面的Swift上下文中,像234.0/255.0这样的书写不是强制性的。但它阻止了Swift编译器在其他一些上下文中将234/255解释为整数除法。)

票数 55
EN

Stack Overflow用户

发布于 2017-09-15 00:39:53

你可以简单的使用UIColor类的下面的方法来实例化红色,绿色,蓝色,阿尔法的颜色。

注意:红色、绿色、蓝色和Alpha的值介于0到1之间。

代码语言:javascript
复制
let colorStart = UIColor(red:0.1 , green: 0.2, blue: 0.5, alpha: 1.0)
let colorEnd = UIColor(red:0.21 , green: 0.32, blue: 0.15, alpha: 1.0)

func createGradientLayer() {
     gradientLayer = CAGradientLayer()
     gradientLayer.frame = self.view.bounds
     gradientLayer.colors = [colorStart.CGColor, colorEnd.CGColor]
     self.view.layer.addSublayer(gradientLayer)
}

要创建渐变层,您可以参考

https://www.appcoda.com/cagradientlayer/

票数 4
EN

Stack Overflow用户

发布于 2017-09-22 02:05:48

另一种方式:https://developer.apple.com/documentation/uikit/uicolor/1621925-init

初始化(displayP3Red: CGFloat,绿色: CGFloat,蓝色: CGFloat,alpha: CGFloat)

使用Display P3颜色空间中指定的不透明度和RGB分量值初始化并返回颜色对象。

您可以使用displayP3Red而不是colorLiteralRed

代码语言:javascript
复制
let startingColorOfGradient = UIColor(displayP3Red: 255/255, green: 255/255, blue: 255/255, alpha: 1.0).cgColor
let endingColorOFGradient = UIColor(displayP3Red: 251/255, green: 247/255, blue: 234/255, alpha: 1.0).cgColor
let gradient: CAGradientLayer = CAGradientLayer()
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45361704

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档