2017-04-13 48 views
1

我正在关注教程here以显示UIImage上的GIF图像。我有写扩展UIImage+GIF.swift这基本上是这样的:为什么扩展到UIImage不起作用?

extension UIImage { 

    public class func gifImage(named: String) -> UIImage { 
     ... 
    } 
} 

与一群其他功能一起。

但是,当我试着这样做:

myImageView.image = UIImage.gifImage(named: "loading.gif"); 

Xcode的抱怨type UIImage has no member "gifImage"。为什么?任何我如何解决这个问题?谢谢。

编辑:

我还试图使它成为一个静态函数就是这样,但它仍然不能正常工作:

extension UIImage { 

    static func gifImage(named: String) -> UIImage { 
     ... 
    } 
} 
+0

[http://stackoverflow.com/questions/27919620/how-to-load-gif-image-in- swift](http://stackoverflow.com/questions/27919620/how-to-load-gif-image-in-swift) –

+0

@NiravHathi谢谢。我通过这个相同的质量保证实际上找到了我的问题中的链接。这导致了原来的问题,我不能在这个特定的扩展上访问静态函数。 –

回答

0
import UIKit  
extension UIImage { 
     func gifImage(named: String) -> UIImage { 
      //Add your logic here 
     } 
    } 

这应该工作。

+0

如果我想添加一个“静态”功能?我可以直接从'UIImage'类调用而不需要实例化它的函数。 –

0

让您extenssion公共

public extension UIImage { 

public func gifImage(named: String) -> UIImage { 
    ... 
} 
} 

使用extenssion这样

yourImageView.gifImage(named: "your image name") 
+0

我已将'public'关键字添加到'extension',但它仍然不起作用... –

+0

不使它成为类功能我已编辑答案请检查。 –

+0

嗯好吧,让我试试看。我需要对功能进行修改。 –