2016-09-12 10 views
0

下記のコードスニペットでUIColorのタイプ拡張を作成しようとしていますが、ビルドエラーが発生しています。私が型拡張メソッドでUIColorオブジェクトを作成しようとすると、UIColorコンストラクタが、作成したカプセル化UIColor拡張を参照しています。 UIColor Type拡張メソッドでUIColorオブジェクトをインスタンス化する方法は?タイプ拡張メソッドでタイプをインスタンス化する方法は?

// Error: "Argument to call takes no parameters" 

     import UIKit 
     import Foundation 

     extension UIColor { 

      class UIColor { 
       var seventyPercentGreyColor : UIColor { 
        get { 
         let seventyPercent:CGFloat = (1.0 - 0.70) 
         // The below line of code produces a 
         // "Argument to call takes no parameters" build error 
         let color = UIColor(red: seventyPercent, green: seventyPercent, blue: seventyPercent, alpha:1.0) 
         return color 
        } 
       } 
      } 
     } 
+2

削除 'クラスUIColor {}'あなただけのグレーレベルが必要な場合は、UIColor(白を使用することができます明示的な 'get {}'も削除してください) – Hamish

答えて

1

静的として宣言できます。 UIColor {...} `代わりに(することができます: - :アルファ:)初期化子:あなたは`クラスのvar seventyPercentGreyColorをしたい

extension UIColor { 
    static var seventyPercentBlack: UIColor { return UIColor(white: 0.3, alpha: 1) } 
} 

UIColor.seventyPercentBlack // w 0,3 a 1,0 
関連する問題