Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 创建UIImageView的子类_Iphone_Uiimageview - Fatal编程技术网

Iphone 创建UIImageView的子类

Iphone 创建UIImageView的子类,iphone,uiimageview,Iphone,Uiimageview,在创建objective-c类的过程中,我还没有找到UIImageView的下拉菜单选项。我使用的是xcode 4.3。我想知道我们不允许扩展UIImageView类。还是我必须继承UIView?自定义UIImageView类的任何示例结构都会有所帮助 谢谢我认为将UIImageView子类化被认为是不好的做法。如果你看看这个问题,有很多例子说明你为什么不应该这么做: 四人帮设计模式理念的一部分是“支持‘对象组合’而不是‘类继承’”,这减少了项目之间的紧密耦合。那么,更改一个类对系统中其他类的

在创建objective-c类的过程中,我还没有找到UIImageView的下拉菜单选项。我使用的是xcode 4.3。我想知道我们不允许扩展UIImageView类。还是我必须继承UIView?自定义UIImageView类的任何示例结构都会有所帮助


谢谢

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

  • 四人帮设计模式理念的一部分是“支持‘对象组合’而不是‘类继承’”,这减少了项目之间的紧密耦合。那么,更改一个类对系统中其他类的影响较小。这使得更改更容易,从而使系统更稳定、更易于维护

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

但是,可以将UIImageView子类化。看看这个

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

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

希望这有帮助!

您可以将UIImageView子类化。 即使qegal的答案包含了很多你应该记住的正确内容,只要把光标放在下拉列表中,开始输入你想要继承的任何类的名称,它就会自动完成