2017-02-10 3 views
3

:私が得る文脈型は、配列リテラルスウィフト3色の配列で使用することはできませんので、次のようなコードのためにスウィフト3で私のコードを配列を作成しようとしたとき、私は私の色の問題を抱えている

//// Color Declarations 
let gradientColor = UIColor(red: 0.859, green: 0.948, blue: 0.308, alpha: 1.000) 
let gradientColor2 = UIColor(red: 0.979, green: 0.677, blue: 0.267, alpha: 1.000) 
let colors = [gradientColor.CGColor, gradientColor.blendedColorWithFraction(0.5, ofColor: gradientColor2).CGColor, gradientColor2.CGColor] as CFArray 
//// Gradient Declarations 
let gradient = CGGradientCreateWithColors(CGColorSpaceCreateDeviceRGB(), colors, [0, 0.5, 1])! 

エラーcontextual type cannot be used with array literal。これについて助けを求めて周りにグーグルで、私が行ったCFArrayに色の配列をキャストすると言われました。しかし、私はまだこのエラーを見ています、ここで私は間違っていますか?あなたは2.xのAPIを使用しているので、興味

+3

問題は 'blendedColorWithFraction'で、' UIColor'ではなく 'NSColor'であり、OSXでは – Tj3n

+0

です。彼の質問に対する本当の答えがあります。私は 'blendedColorWithFraction'が何だったのか不思議でした... –

答えて

2

あなたが実際に迅速バージョン3を使用している場合は、とにかくにおけるSWIFT 3(、.CGColor代わり.cgColorの代わりにCGGradientのinitのCGGradientCreateWithColors):

//: Playground - noun: a place where people can play 

import UIKit 

let gradientColor = UIColor(red: 0.859, green: 0.948, blue: 0.308, alpha: 1.000) 
let gradientColor2 = UIColor(red: 0.979, green: 0.677, blue: 0.267, alpha: 1.000) 

let colors = [gradientColor.cgColor, gradientColor2.cgColor] 

let gradient = CGGradient(colorsSpace: CGColorSpaceCreateDeviceRGB(), colors: colors as CFArray, locations: [0, 0.5, 1]) 

私はblendedColorWithFractionに精通していないので、名前を変更したリンゴAPIまたは使用しているサードパーティ製のものでなければなりません。

編集:blendedColorWithFractionNSColor(コメントに記載されている@ Tj3n)です。これは実際の問題です。

+0

ありがとう!私は古いバージョンのPaintcodeを使用していたので、古いSwiftコードがそこにあります。 – KexAri

関連する問題