【问题标题】:Large images loaded in iOS and resized by outlet在 iOS 中加载并通过插座调整大小的大图像
【发布时间】:2012-03-12 16:35:48
【问题描述】:

我正在使用 iOS 和全 iPhone 屏幕大小的图像(取决于设备的分辨率)。

我必须创建一个工具栏,其中包含许多这些图像作为缩略图,但我只将完整尺寸的图像作为资源。

我的问题是,如果我将每张图片加载为 UIButton 背景,并且将按钮调整为例如 68x68px,图片分配的内存量是否与以全分辨率加载时相同?

我之前必须对这些图像进行压缩处理吗?

谢谢。

【问题讨论】:

    标签: objective-c ios image


    【解决方案1】:

    我认为内存管理问题取决于您未提供的许多细节。例如:您在代码中加载了多少次图像?如果你不止一次使用[UIImage imageNamed:@"bigImage"],那么 iOS 会很乐意再次加载图像。但是如果你只这样做一次,并且多次使用 UIImage 对象,那么你在内存中将只有一个图像副本。

    至于按钮本身使用了多少内存,我不知道。我的猜测是,它要么不会在你的应用程序的内存占用中添加任何东西(除了底层 UIImage 对象之外),要么只是 68x68 屏幕缓冲区所需的内存。

    综上所述,如果我处于您的情况,我可能会自己创建较小的按钮大小的图像作为开发的一部分,并将它们包含在应用程序中。我认为这也将在运行时产生效率优势。如果您正在动态调整按钮的大小,那么您的方法可能会奏效,但我仍然会从设计的角度对其进行一些审查 - 动态调整按钮的大小并不常见。

    【讨论】:

    • 感谢您的回答!但是图像被动态地添加到程序中,我必须用这些图像创建一个图块,比如缩略图。我计划在添加按钮之前创建一个调整图像大小的方法。但我想知道当按钮调整图像大小时是否会自动进行这种转换。谢谢。
    • 我认为如果您设置myButton.contentMode = UIViewContentModeScaleToFill 那么是的,您的图像将被缩放以适合按钮。但这不会导致创建一个新的、更小的 UIImage。
    猜你喜欢
    • 1970-01-01
    • 2013-07-04
    • 2012-12-18
    • 1970-01-01
    • 2019-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-29
    相关资源
    最近更新 更多