web-dev-qa-db-ja.com

init(colorLiteralRed:、green:、blue:、alpha :) Swift 4で廃止予定

_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()
_

エラー:

'init(colorLiteralRed:green:blue:alpha :)'は、Swift 4.0(Swift._ExpressibleByColorLiteral))で廃止されました

init(colorLiteralRed:,green:,blue:,alpha:)がSwift 4で非推奨になった場合、どうすればグラデーションカラーを使用できますか?

33
Zeus Eternal

init(colorLiteralRed:green:blue:alpha:)は、開発ツールで管理されるカラーリテラルで使用することを目的としています。

通常のinit(red:green:blue:alpha:)を使用しないのはなぜですか?

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()

234.0/255.0は、上記のSwiftのコンテキストでは必須ではありません。ただし、Swiftコンパイラが234/255いくつかの他のコンテキストの整数除算として。)

52
OOPer

UIColorクラスの以下のメソッドを使用して、赤、緑、青、アルファから色をインスタンス化できます。

注:赤、緑、青、およびアルファの値は0〜1です。

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
Sudhir kumar

別の方法: https://developer.Apple.com/documentation/uikit/uicolor/1621925-init

init(displayP3Red:CGFloat、green:CGFloat、blue:CGFloat、alpha:CGFloat)

Display P3カラースペースで指定された不透明度とRGBコンポーネント値を使用して、カラーオブジェクトを初期化して返します。

colorLiteralRedの代わりにdisplayP3Redを使用できます

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
Vini App

使用できます

UIColor(red: CGFloat(255.0), green: CGFloat(255.0), blue: CGFloat(255.0), alpha: CGFloat(255.0))
0
Hatim