防止在iphone sdk中从uiimage拉伸图像

时间:2013-07-02 13:20:15

标签: iphone ios image uiimageview

enter image description here

代码段

        self.newsImage = [[UIImageView alloc] initWithFrame:CGRectMake(0,0,300,130)];
        //set placeholder image or cell won't update when image is loaded
        self.newsImage.image = [UIImage imageNamed:@"newsDetail.png"];
        //load the image
        self.newsImage.imageURL = [NSURL URLWithString:imageBig];
        [imageBack addSubview:self.newsImage];

我有40 * 40尺寸的图像,但图像视图尺寸为300 * 130。如何避免拉伸图像。

我想要UIImageview的中心。

提前致谢!!!!

2 个答案:

答案 0 :(得分:2)

将内容放在中心位置:

self.newsImage.contentMode = UIViewContentModeCenter;

答案 1 :(得分:1)

你必须将CGSize设置为你的图像宽度和高度,这样图像就不会拉伸,而是排列在中间。

- (UIImage )imageWithImage:(UIImage )image scaledToFillSize:(CGSize)size
{
    CGFloat scale = MAX(size.width/image.size.width, size.height/image.size.height);
    CGFloat width = image.size.width * scale;
    CGFloat height = image.size.height * scale;
    CGRect imageRect = CGRectMake((size.width - width)/2.0f,
                                  (size.height - height)/2.0f,
                                  width,
                                  height);

    UIGraphicsBeginImageContextWithOptions(size, NO, 0);
    [image drawInRect:imageRect];
    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return newImage;
}