iOS中 UIImage根据屏宽调整size的实例代码

 更新时间:2017年01月18日 11:24:13   作者:王颜华  
最近做项目遇到这样一个需求,要求UIImage根据屏幕宽度按照自己本身比例改变高度,下面通过本文给大家分享iOS UIImage根据屏宽调整size的实例代码,需要的朋友参考下吧

需求:UIImage根据屏幕宽度按照自己本身比例改变高度

上代码,为UIImage创建一个Category

#import "UIImage+UIImageExtras.h" 
@implementation UIImage (UIImageExtras) 
- (UIImage *)imageByScalingToSize:(CGSize)targetSize 
{ 
 UIImage *sourceImage = self; 
 UIImage *newImage = nil; 
 CGSize imageSize = sourceImage.size; 
 CGFloat width = imageSize.width; 
 CGFloat height = imageSize.height; 
 CGFloat targetWidth = targetSize.width; 
 CGFloat targetHeight = targetSize.height; 
 CGFloat scaleFactor = 0.0; 
 CGFloat scaledWidth = targetWidth; 
 CGFloat scaledHeight = targetHeight; 
 CGPoint thumbnailPoint = CGPointMake(0.0,0.0); 
 if (CGSizeEqualToSize(imageSize, targetSize) ==NO) { 
 CGFloat widthFactor = targetWidth / width; 
 CGFloat heightFactor = targetHeight / height; 
 if (widthFactor < heightFactor) 
  scaleFactor = widthFactor; 
 else 
  scaleFactor = heightFactor; 
 scaledWidth = width * scaleFactor; 
 scaledHeight = height * scaleFactor; 
 // center the image 
 if (widthFactor < heightFactor) { 
  
  thumbnailPoint.y = (targetHeight - scaledHeight) * 0.5; 
 } else if (widthFactor > heightFactor) { 
  thumbnailPoint.x = (targetWidth - scaledWidth) * 0.5; 
 } 
 } 
 // this is actually the interesting part: 
 UIGraphicsBeginImageContext(targetSize); 
 CGRect thumbnailRect = CGRectZero; 
 thumbnailRect.origin = thumbnailPoint; 
 thumbnailRect.size.width = scaledWidth; 
 thumbnailRect.size.height = scaledHeight; 
 [sourceImage drawInRect:thumbnailRect]; 
 newImage =UIGraphicsGetImageFromCurrentImageContext(); 
 UIGraphicsEndImageContext(); 
 if(newImage == nil) 
 NSLog(@"could not scale image"); 
 return newImage ; 
} 
@end 

在需要使用的地方import然后使用

CGSize size = image.size; 
image = [image imageByScalingToSize:CGSizeMake([UIScreen mainScreen].bounds.size.width,[UIScreen mainScreen].bounds.size.width * (size.height / size.width))]; 
self.imageview.image = image; 

以上所述是小编给大家介绍的iOS UIImage根据屏宽调整size的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • IOS关闭键盘的方法

    IOS关闭键盘的方法

    在iOS应用开发中,有三类视图对象会打开虚拟键盘,进行输入操作,但如何关闭虚拟键盘,却没有提供自动化的方法。这个需要我们自己去实现。
    2015-05-05
  • iOS中程序异常Crash友好化处理详解

    iOS中程序异常Crash友好化处理详解

    在iOS开发调试过程中以及上线之后,程序经常会出现崩溃的问题,下面这篇文章主要给大家介绍了关于iOS中程序异常Crash友好化处理的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2018-07-07
  • iOS UICollectionView实现横向滑动

    iOS UICollectionView实现横向滑动

    这篇文章主要为大家详细介绍了iOS UICollectionView实现横向滑动,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-03-03
  • iOS新功能引导提示界面实例详解

    iOS新功能引导提示界面实例详解

    在开发中,现在很多app更新了新功能时都会给出用户一个提示,以方便用户更好的体验,那么这个功能如何实现的呢?下面通过本文给大家分享iOS新功能引导提示界面实例详解,需要的的朋友参考下吧
    2017-04-04
  • Flutter开发Widgets 之 PageView使用示例

    Flutter开发Widgets 之 PageView使用示例

    这篇文章主要为大家介绍了Flutter开发Widgets 之 PageView使用示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-10-10
  • iOS开发中实现显示gif图片的方法

    iOS开发中实现显示gif图片的方法

    这篇文章主要介绍了iOS开发中实现显示gif图片的方法,代码基于传统的Objective-C,需要的朋友可以参考下
    2015-09-09
  • 浅谈WKWebView 在64位设备上的白屏问题

    浅谈WKWebView 在64位设备上的白屏问题

    下面小编就为大家带来一篇浅谈WKWebView 在64位设备上的白屏问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-04-04
  • Xcode中Info.plist字段详解

    Xcode中Info.plist字段详解

    我们通过本篇文章给大家整理了Xcode中Info.plist字段的详细内容,有需要的朋友学习下。
    2018-01-01
  • iOS实现多个弹框按顺序依次弹出效果

    iOS实现多个弹框按顺序依次弹出效果

    这篇文章主要为大家详细介绍了iOS实现多个弹框按顺序依次弹出效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-07-07
  • iOS图片拉伸技巧小结

    iOS图片拉伸技巧小结

    这篇文章主要为大家详细介绍了iOS图片拉伸的技巧,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-01-01

最新评论