创建UIImageView的子类

pad*_*apa 2 iphone uiimageview

我还没有找到UIImageView的选项,可以在创建objective-c类时从下拉列表中进行选择.我正在使用xcode 4.3.我想知道我们不允许扩展UIImageView类.或者我必须继承UIView?自定义UIImageView类的任何示例结构都会有所帮助.

谢谢

pas*_*aya 7

我认为将子类化为UIImageView被认为是不好的做法.如果你看看这个问题,有很多例子说明为什么你不应该这样做:

  • Gang of Fours设计模式哲学的一部分是"赞成'对象构成'而不是'阶级继承'." 这减少了对象之间的紧密耦合.然后更改一个类对系统中的其他类的影响较小.这使得更改更容易,从而使系统更稳定,易于维护.

  • 它是子类化UIView的原因是,例如,您应该在下载图像时显示UIActivityIndi​​cator.他们没有在他们的例子中显示这个,但是我使用了这个代码并且非常好.另外看一下这篇文章的评论,你会发现更多代码示例,还包括一些缓存和好东西.

但是,可以将UIImageView子类化.看看这个问题吧.

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

  • 我建议使用Objective-C"Category"而不是子类化UIImageView.只要您不必添加任何成员变量,类别就是更好的解决方案.当您使用类别时,您可以在原始类的任何实例上调用扩展函数(在您的情况下为UIImageView.这使您无需在任何可能想要使用新函数的地方有意识地使用子类.

希望这可以帮助!