我如何像一个
注意:我需要init,而不是静态func
extension UIImage {
convenience init?(named: String, in bundle: Bundle? = nil, compatibleWith collection: UITraitCollection? = nil, rendring: UIImageRenderingMode) {
self.init(named: named, in: bundle, compatibleWith: collection)
self = self.imageWithRenderingMode(rendring) // error
return
}
}
但我对它的实现有错误
错误:无法分配给值:“self”是不可变的
你可以使用这样的东西:
我用Swift 4.1编写的,您可以进行所需的更改。
extension UIImage {
convenience init?(named: String, in bundle: Bundle? = nil, compatibleWith collection: UITraitCollection? = nil, rendring: UIImageRenderingMode) {
if let image = UIImage(named: named, in: bundle, compatibleWith: collection) {
if let cgImage = image.withRenderingMode(rendring).cgImage {
self.init(cgImage: cgImage)
}
}
return nil
}
}