【问题标题】:Downloaded big UIImage scale to UIImageView将大 UIImage 比例下载到 UIImageView
【发布时间】:2015-02-25 07:49:33
【问题描述】:

我正在下载一个相当大的图像并将其存储在UIImage 中。然后我将UIImage 添加到UIImageView 以显示,但UIImage 太大了,因此它只显示图像的一部分(它的左上角)。我希望它显示整个 UIImage,缩小图像以适应 UIImageView。

我查看了很多不同的答案,但我无法让它们中的任何一个起作用。我已将UIImageView 的缩放模式设置为 Aspect Fill、fit 和你的名字(也尝试过剪辑子视图),但没有任何效果。

代码如下:

UIImage *trackImg = [UIImage imageWithContentsOfFile:trackImagePath];
_backgroundImage.image = trackImg;

代码很简单,但它所做的只是下载一个 UIImage,并将其设置为 UIImageview 的图像。 UIImageView 在 interface-builder 中配置。

提前致谢。

【问题讨论】:

  • 你能展示你的代码吗?
  • 对不起,现在添加。
  • 你设置了_backgroundImage.contentMode = UIViewContentModeScaleAspectFit; ?那么你检查 _backgroundImage 框架了吗?
  • 哦,这是因为框架的大小已关闭。我把约束设置错了,搞砸了 -.-' 仍然习惯了这个新的约束系统(有时觉得有点难),我最终找错了地方。非常感谢,非常抱歉。

标签: ios objective-c uiimageview uiimage


【解决方案1】:

您可以使用 scaleToSize 方法调整图像大小:

-(UIImage *)imageWithImage:(UIImage *)image scaledToSize:(CGSize)newSize {
    UIGraphicsBeginImageContextWithOptions(newSize, NO, 0.0);
    // Here pass new size you need
    [image drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)];
    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return newImage;
}

传递您的 UIImage,它应该会调整大小。调用方法为:

[self imageWithImage:[UIImage imageNamed:@"yourImage.png"] scaledToSize:CGSizeMake(25,45)];

【讨论】:

    【解决方案2】:

    错误在于 imageView 的大小(感谢 Huy Nghia)。我设置了错误的约束,导致 imageView 的大小与我预期的不同,我无法轻易检测到,因为我希望它填满整个屏幕。

    如果其他人遇到困难,请尝试确保您的限制是正确的。

    【讨论】:

      猜你喜欢
      • 2011-01-22
      • 2011-12-06
      • 2013-03-05
      • 2012-02-24
      • 1970-01-01
      • 1970-01-01
      • 2019-08-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多