

需求: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的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对武林网网站的支持!
新闻热点
疑难解答