ios - 覆盖UIImage imageNamed-我有哪些选择?

标签 ios objective-c uiimage objective-c-category imagenamed

基本上,我的代码大量使用[UIImage imageNamed],默认情况下会从应用程序捆绑包中获取图片。

现在,我希望从文档(或库等)深处的目录(而不是主捆绑包)中返回图像。而且,由于存在太多的imageNamed调用实例,因此我正在考虑为此扩展(读取替换)UIImage ImageNamed实现。

我已经经历过this,但不能完全弥补我该怎么做,什么是最好的:

  • 创建UIImage的类别
  • 创建UIImage的子类
  • 方法令人讨厌的

  • 我也不知道我是否必须处理@ 2x图像。我当前的捆绑软件包括一堆,我想我的实现也必须照顾好它。但不确定如何。

    最佳答案

    最干净,最优雅,最容易维护的长期解决方案是在UIImage上使用类别。在UIImage上定义一个自定义方法,然后使用“查找和替换”将所有imageNamed调用替换为新方法。

    不要使用繁琐的操作(它会引入奇怪的,未记录的错误),并且很难维护或调试。 (此外,如果遇到麻烦,它将在您要使用imageNamed的默认实现的地方中断)。

    您不需要为要执行的操作子类化UIImage,因为您不需要实例方法。

    关于ios - 覆盖UIImage imageNamed-我有哪些选择?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15121901/

    相关文章:

    iphone - 如何将图像(不是资源)缩放到 iPhone Retina 在 View 中正确显示?

    iphone - 获取UIImage的像素颜色

    ios - Skype 如何在 iOS 上使用 p2p?

    ios - iBeacon 测距和接近度有问题

    ios - 为什么我的 Swift 应用程序没有 AppDelegate 或 SceneDelegate?

    ios - 无法在 ios 中使用带有自定义按钮的 api v2.4 登录 facebook

    c++ - 在 Objective-C 中包装 C++ 类

    ios - 隐藏 UITableview 单元格

    ios - 推送导航 Controller 时出现异常 - iOS

    ios - 在 iOS 中以 2x 或 3x 读取图像