2016-09-12 84 views
0

我想为下面的代码片段中的UIColor创建一个Type扩展,但我收到一个构建错误。当我尝试在我的Type扩展方法中创建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 {}' - 你想'类VAR seventyPercentGreyColor:的UIColor {...}',而不是(你可以也删除显式的'get {}') – Hamish

回答

1

您可以将其声明为静态。如果你只需要灰度级可以使用的UIColor(白:阿尔法:)初始化:

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

UIColor.seventyPercentBlack // w 0,3 a 1,0