【问题标题】:High Resolution Image display in UIImageViewUIImageView 中的高分辨率图像显示
【发布时间】:2012-10-12 02:18:49
【问题描述】:

我的要求是需要在 UIImageView 中显示 4000 x 2000 的图像,但我在 UIImageView 中显示了这个图像...在某些导航应用程序崩溃之后我收到了内存警告...谁能建议我如何摆脱这个问题.. 是的,我不想调整图像的大小

【问题讨论】:

    标签: iphone memory-management crash uiimageview


    【解决方案1】:

    您应该使用CATiledLayer。有关示例实现,请参阅 Apples PhotoScroller

    【讨论】:

    • 我要求使用ios 4..无法运行它。
    • CATiledLayer 从 iOS2 开始可用,iOS4 中修复了最严重的错误。只有示例需要 iOS6,但您不必逐字复制示例。
    【解决方案2】:

    试试这个代码,它可能会解决你的问题

         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 您加载图像的位置。

    【讨论】:

    • 要求是需要在 UIImageView 中显示图像而不裁剪而不调整...只要显示它的 UIImage 的任何大小
    • 您必须以适当的比例调整图像大小,否则您的应用程序会崩溃。您的图像大小为 4000,2000。尺寸太大了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多