ios - 如何在类型扩展方法中实例化类型?

标签 ios swift3 swift-extensions

我正在尝试根据下面的代码片段为 UIColor 创建类型扩展,但我收到构建错误。当我尝试在我的类型扩展方法中创建 UIColor 对象时,UIColor 构造函数引用了我创建的封装 UIColor 扩展。如何在我的 UIColor 类型扩展方法中实例化 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
                    }
                }
            }
        }

最佳答案

您可以将其声明为静态的。如果您只需要灰度级,您可以使用 UIColor(white:alpha:) 初始值设定项:

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

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

关于ios - 如何在类型扩展方法中实例化类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39456213/

相关文章:

ios - 协议(protocol)方法不起作用

ios - "push"在 iOS 8.0 及更高版本中已弃用

ios - 如何将包含动态高度内容的弹出 View 居中?

swift - 如何将图像从 UITableViewCell 传递到 UIImage

swift - 您可以仅扩展使用字符串作为原始值类型的 RawRepresentables 吗?

ios - 如何以编程方式更新 View 的高度?

ios - 如果我在使用 cocoapods 时必须修复某些东西,如何更改 pod

swift - 将 MeasurementFormatter 与派生单位一起使用

ios - 如何在 Swift 中重写协议(protocol)扩展的实例方法?

Swift 为什么我的生成器协议(protocol)扩展不起作用?