【发布时间】:2012-10-12 02:18:49
【问题描述】:
我的要求是需要在 UIImageView 中显示 4000 x 2000 的图像,但我在 UIImageView 中显示了这个图像...在某些导航应用程序崩溃之后我收到了内存警告...谁能建议我如何摆脱这个问题.. 是的,我不想调整图像的大小
【问题讨论】:
标签: iphone memory-management crash uiimageview
我的要求是需要在 UIImageView 中显示 4000 x 2000 的图像,但我在 UIImageView 中显示了这个图像...在某些导航应用程序崩溃之后我收到了内存警告...谁能建议我如何摆脱这个问题.. 是的,我不想调整图像的大小
【问题讨论】:
标签: iphone memory-management crash uiimageview
您应该使用CATiledLayer。有关示例实现,请参阅 Apples PhotoScroller。
【讨论】:
试试这个代码,它可能会解决你的问题
CGSize initialImageSize = userimage.frame.size;
CGSize imageSize = userimage.image.size;
CGFloat aspectRatio = imageSize.width / imageSize.height;
CGRect imageFrame = userimage.frame;
if (initialImageSize.width / aspectRatio <= initialImageSize.height) {
imageFrame.size.width = initialImageSize.width;
imageFrame.size.height = imageFrame.size.width / aspectRatio;
} else {
imageFrame.size.height = initialImageSize.height;
imageFrame.size.width = imageFrame.size.height * aspectRatio;
}
userimage.frame = imageFrame;
其中 userimage 是 UIImageView 您加载图像的位置。
【讨论】: