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中居中,我希望它左对齐(最好是左上角)。我怎样才能做到这一点?谢谢你的帮助。
答案 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;