Senthil
Senthil

Reputation: 510

Prevent Stretching image from uiimage in iphone sdk

enter image description here

Code snippet

        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];

I have one image on 40*40 size but image view size 300*130. How to avoid stretching image.

I want center of the UIImageview.

Thanks in Advance !!!!

Upvotes: 2

Views: 1941

Answers (2)

Dharmraj Vora
Dharmraj Vora

Reputation: 57

ou have to set CGSize as your image width and hight so image will not stretch and it arrange at the middle.

- (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;
}

Upvotes: 1

rckoenes
rckoenes

Reputation: 69469

Just center the content:

self.newsImage.contentMode = UIViewContentModeCenter;

Upvotes: 2

Related Questions