【问题标题】:Convenience methods for resizable images可调整大小图像的便捷方法
【发布时间】:2013-04-23 10:05:56
【问题描述】:

我的应用中有大量可调整大小的图片,我到处都在使用它们。

它们中的大多数具有相同的边缘插图,但有些不同。

创建它们也需要大量代码...

UIImage *buttonBGImage = [[UIImage imageNamed:@"buttonBG"] resizableImageWithCapInsets:UIEdgeInsetsMake(4, 4, 5, 4) resizingMode:UIImageResizingModeStretch];

这只是一行代码,但我必须去寻找所有的边缘插图等......

我正在尝试为它创建一个方便的方法。比如……

UIImage *buttonBGImage = [blah resizableButtonBG];

这些地方最好放在哪里?我可以创建一个名为“ImageManager”的单例。这样每个可调整大小的图像只会被实例化一次,然后将被保存在内存中。是不是有点矫枉过正?

我可以向UIImage 添加一个名为...的类别...

+(UIImage *)resizableButtonBG;

任何人都可以就此提供任何建议吗?我的单身想法是个好主意吗?使用 Singleton 有什么缺点吗?

【问题讨论】:

    标签: ios objective-c uiimage resizable


    【解决方案1】:

    类别方法绝对是一个很好的解决方案。许多人使用它来创建在应用程序中的多个位置使用的字体和颜色。

    没有必要使用单例。没有关联的实例数据,因此您最好坚持使用返回适当图像的简单类别方法。

    【讨论】:

    • 但我可以让每个图像成为单例实例的属性。使每个图像只需要创建一次。
    • 使用imageNamed 创建的图像无论如何都会被缓存。所以它们只被创建一次。只需在您描述的类别中使用您的工厂方法。
    • 啊!我没有意识到缓存。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-21
    • 2011-03-20
    • 1970-01-01
    • 1970-01-01
    • 2011-10-22
    • 1970-01-01
    • 2016-12-01
    相关资源
    最近更新 更多