【问题标题】:Setting the high resolution image to UIimageView create memory issue将高分辨率图像设置为 UIimageView 创建内存问题
【发布时间】:2014-07-08 08:03:56
【问题描述】:

我有一个有两个屏幕的应用程序。我将UIImage 对象从第一个屏幕发送到第二个屏幕,并将此图像设置为第二个屏幕中的UIImageview。

但是当我尝试在UIImageview 中设置图像时,我的内存峰值上升到 116。我的图片分辨率高于2040*2040

这是我的代码

.h 文件

@property (weak, nonatomic) IBOutlet UIImageView *aimageView;
@property (weak, nonatomic) UIImage *sourceImage;

.m 文件

- (void)viewDidLoad
{
    [super viewDidLoad];

    aimageView.image = sourceImage;
    [aimageView setContentMode:UIViewContentModeScaleAspectFit];
    sourceImage = nil;
}

【问题讨论】:

  • 更改图像分辨率。

标签: ios iphone memory-management uiimageview


【解决方案1】:

当图像在内存中未压缩时,它会占用大量内存。

如果您正在为 iPhone 开发,最大屏幕分辨率为 640x1136,那么为什么需要一次加载 2040x2040 的图像?

如果您需要在应用中高效处理大图像,使用CATiledLayer 可能值得一看。这将允许您将大图像拆分为较小的图像图块,然后仅加载用户希望在屏幕上看到的图块。

Apple 有一个示例项目,您可以找到 here。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多