我还没有找到创建Objective-C类时从下拉菜单中选择UIImageView的选项。我正在使用xcode 4.3。我想知道我们允许扩展UIImageView类的原因。还是我必须继承UIView?自定义UIImageView类的任何示例结构都将有所帮助。

谢谢

最佳答案

我认为将UIImageView子类化是一种不好的做法。如果您查看this问题,那么有许多为什么不应该这样做的示例:


  
  Gang of Fours设计模式哲学的一部分是“偏爱“对象组成”而不是“类继承”。这减少了对象之间的紧密耦合。然后,更改一个类别将对系统中的其他类别产生较小的影响。这使更改更加容易,从而使系统更加稳定,易于维护。
  它将UIView子类化的原因是,例如,您应该在下载图像时显示UIActivityIndi​​cator。他们没有在示例中显示此代码,但是我使用了此代码,它的确很好。还请查看这篇文章的注释,您将找到更多代码示例,其中还包括一些缓存和不错的东西。
  


但是,可以继承UIImageView。看看这个question

在上述问题中建议的一个很好的替代方法是使用类别而不是对UIImageView进行子类化:


  
  我建议使用Objective-C“类别”,而不是子类化UIImageView。只要您不必添加任何成员变量,“类别”都是一个更好的解决方案。使用类别时,可以在原始类的任何实例上调用扩展函数(在您的情况下为UIImageView。这样就无需在有可能要使用新函数的地方自觉使用子类了。
  


希望这可以帮助!

关于iphone - 创建UIImageView的子类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11719409/

10-14 20:42
查看更多