调整大小后UIImage居中

时间:2011-04-19 06:47:01

标签: iphone uiimageview uiimage

iPhone应用程序代码:

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

CGSize sz = CGSizeMake( 200, 20 );
imageView.contentMode = UIViewContentModeScaleAspectFit;
imageView.image = [Class imageWithImage: [UIImage imageNamed:@"image.png"] scaledToSize: sz];

调整大小的图像在imageView中居中,我希望它左对齐(最好是左上角)。我怎样才能做到这一点?谢谢你的帮助。

2 个答案:

答案 0 :(得分:5)

如果您已将imageView设置为具有内容模式UIViewContentModeScaleAspectFit,则iOS将适合您的图像,但如果合身小于您的宽度,它还会在左侧和右侧引入透明条。

解决方案是让iOS适合图像,然后找出新的宽度并使用新的宽度设置imageView的宽度。

    CGSize imgSize = contentProvider.image.size;
    CGRect frame = contentProviderViewOriginalFrame;

    if (imgSize.width > 0 && imgSize.height > 0)
    {
        double aspectRatio = (imgSize.width * 1.0) / (imgSize.height * 1.0);
        CGFloat newWidth = frame.size.height * aspectRatio;

        if (newWidth < frame.size.width)
        {
            frame.size.width = newWidth;
        }
    }

答案 1 :(得分:1)

将contentMode更改为:

imageView.contentMode = UIViewContentModeTopLeft;