【问题标题】:Fitting a UIImage in UIImageView在 UIImageView 中安装 UIImage
【发布时间】:2013-07-26 13:26:50
【问题描述】:

我需要根据UIImageView 的大小调整UIImage 的大小。我的图像太小,所以我需要放大它。我无法使用:

self.firstImage.contentMode = UIViewContentModeScaleAspectFit;

请帮忙。

【问题讨论】:

  • 你尝试过其他的内容模式吗?
  • 是的..我试过了..但没有一种模式对我有用..但是@vineet的建议解决了我的问题..

标签: ios objective-c uiimageview uiimage


【解决方案1】:

您只需设置UIImageView 的框架并将contentMode 设置为调整大小选项之一。

如果您确实需要调整图像大小,也可以使用此实用方法:

+ (UIImage *)imageWithImage:(UIImage *)image scaledToSize:(CGSize)newSize {
    //UIGraphicsBeginImageContext(newSize);
    UIGraphicsBeginImageContextWithOptions(newSize, NO, 0.0);
    [image drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)];
    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();    
    UIGraphicsEndImageContext();
    return newImage;
}

或者看看这些链接:

http://nanostuffs.com/Blog/?p=586

http://www.abdus.me/ios-programming-tips/resize-image-in-ios/

【讨论】:

  • 我看到这个代码到处都是,它很棒,但是我使用设置图像的 uibutton 的帧大小,如果大小不同,图像的大小会被挤压。例如,如果图像大小为 1200x1600,而 uibutton 框架为 80x80,则图像调整为更窄。有人能帮忙吗?谢谢。
【解决方案2】:

在 Swift 3.0 中,它将是

func imageWithImage(image:UIImage, scaledToSize newSize:CGSize ) -> UIImage {

    UIGraphicsBeginImageContextWithOptions(newSize, false, 0.0)
    image.draw(in: CGRect(x: 0, y: 0, width: newSize.width, height: newSize.width))
    let newImage : UIImage  = UIGraphicsGetImageFromCurrentImageContext()!
    UIGraphicsEndImageContext();
    return newImage;

}

【讨论】:

    【解决方案3】:

    请点击以下链接。希望你能得到解决。

    How to use UIImageView Content Mode ?

    谢谢。

    【讨论】:

      【解决方案4】:

      试试这个:

      self.imageView.contentMode   = UIViewContentModeScaleAspectFill;
      self.imageView.clipsToBounds = YES;
      

      【讨论】:

      • clipsToBounds 是 UIView 属性,UIImageView 扩展了 UIView。
      • 错字:应该是 clipsToBounds 而不是 clipToBounds
      猜你喜欢
      • 2010-11-28
      • 2011-12-06
      • 2015-04-26
      • 2011-06-18
      • 2012-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多