我正在使用 iOS 和大小为整个 iphone 屏幕的图像(取决于设备的分辨率)。
我必须创建一个工具栏,其中有许多这些图像作为缩略图,但我只有全尺寸图像作为资源。
我的问题是,如果我将每个图像都加载为 UIButton 背景,并且将按钮的大小调整为例如 68x68px,图片分配的内存量是否与以全分辨率加载时相同?
我之前必须对这些图像进行压缩处理吗?
谢谢。
最佳答案
我认为内存管理问题取决于您未提供的许多细节。例如:您在代码中加载了多少次图像?如果您多次使用 [UIImage imageNamed:@"bigImage"]
,那么 iOS 将很乐意再次加载图像。但如果你只这样做一次,并多次使用 UIImage 对象,那么内存中将只有一个图像副本。
至于按钮本身占用多少内存,我就不知道了。我的猜测是,它要么不会向您的应用程序的内存足迹添加任何内容(超出底层 UIImage 对象),要么只是 68x68 屏幕缓冲区所需的内存。
综上所述,如果我处于您的情况,作为开发的一部分,我可能会自己创建较小的按钮大小的图像,并将它们包含在应用程序中。我认为这也会在运行时产生效率优势。如果您要动态调整按钮的大小,那么您的方法也许会奏效,但我仍然会从设计的角度对其进行一些审查 - 动态调整按钮的大小并不常见。
关于objective-c - 在 iOS 中加载大图像并通过 outlet 调整大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9671066/