我没有找到UIImageView的选项,可以在创建objective-c类时从下拉列表中进行选择。我正在使用xcode 4.3。我想知道我们不允许扩展UIImageView类。或者我必须继承UIView?自定义UIImageView类的任何示例结构都会有所帮助。
由于
答案 0 :(得分:7)
我认为继承UIImageView被认为是不好的做法。如果您查看this问题,可以举出许多不应该这样做的例子:
Gang of Fours设计模式哲学的一部分是“赞成'对象组合'而不是'类继承'。”这减少了对象之间的紧密耦合。然后更改一个类对系统中的其他类的影响较小。这使得更改变得更容易,从而使系统更加稳定,易于维护。
它是UIView的子类化的原因是,您应该在下载图像时显示UIActivityIndicator。他们没有在他们的例子中显示这个,但是我使用了这个代码并且非常好。另外看一下这篇文章的评论,你会发现更多代码示例,还包括一些缓存和好东西。
但是,可以继承UIImageView。请看一下这个question。
在上述问题中建议的一个好的替代方法是使用类别而不是子类化UIImageView:
- 我建议使用Objective-C“Category”而不是子类化UIImageView。只要您不必添加任何成员变量,类别就是更好的解决方案。当您使用类别时,您可以在原始类的任何实例上调用扩展函数(在您的情况下是UIImageView。这使您无需在任何可能想要使用新函数的地方有意识地使用子类。
希望这有帮助!
答案 1 :(得分:2)
您可以继承UIImageView。 即使qegal的答案包含很多正确的东西你应该记住,只需将光标放入下拉列表并开始键入要继承的任何类的名称,它将开始自动完成。