【问题标题】:Is there any reason why we don't use subclasses of UIImageView?我们有什么理由不使用 UIImageView 的子类?
【发布时间】:2010-03-16 09:12:17
【问题描述】:

我目前正在尝试创建 UIImageView 的子类,以使其从服务器异步下载其图像;)

我尝试自己做,但我还没有走多远:D

不管怎样,我环顾四周发现了这个:

AsyncImageDownload

我查看了代码,首先想到的是:为什么要继承 UIView 而不是 UIImageView ?!?

有什么想法吗?

朋友们,

哥蒂。

【问题讨论】:

    标签: iphone asynchronous download uiimageview subclass


    【解决方案1】:

    Gang of Fours design pattern 哲学的一部分是

    “优先考虑‘对象组合’而不是‘类继承’。”

    这减少了对象之间的紧密耦合。那么更改一个类将对系统中的其他类产生较小的影响。这使得更改更容易,从而使系统更稳定、更易于维护。

    在这种情况下,正如之前的海报所提到的,它还允许图像执行其他操作,例如显示进度指示器。

    【讨论】:

      【解决方案2】:

      它继承 UIView 的原因是,例如,您应该在下载图像时显示 UIActivityIndi​​cator。他们没有在他们的示例中显示这一点,但我已经使用了这段代码,它真的很好。另请查看这篇文章的 cmets,您会发现更多代码示例,还包括一些缓存和不错的东西。

      看看韦恩Cochra's comment。他的 YellowJacket.zip 代码非常好。

      【讨论】:

      • 无论如何,我认为 Apple 代码 developer.apple.com/iphone/library/samplecode/LazyTableImages/… 比 markj 的代码高效得多;)所以我想我会坚持下去:D
      • Apple 的代码将图像下载和表格视图紧密结合在一起。我认为您应该重新考虑使用图像自给自足并且可以下载文件、缓存文件和显示图像的模式。当有人(几个月后的你:)查看表格视图时,它将使其更易于重用且更易于理解。
      猜你喜欢
      • 2015-07-24
      • 2010-09-29
      • 2013-09-27
      • 2011-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-25
      • 1970-01-01
      相关资源
      最近更新 更多