UIImage不应该在UIImageView内部拉伸

时间:2015-05-13 06:19:53

标签: ios objective-c iphone uiimageview uiimage

Image size is 480X360

我在xib中使用UIImageView。应用程序专为多设备而设计,无需自动布局。这意味着我正在使用自动调整。我想要做的是,只有我的UIImageView应该自动调整UIImageView内的我的图像,但不幸的是我的图像也会被UIImageView拉长。我尝试了不同的方法,但无法取得成功。更改了内容模式,但对我不起作用。

2 个答案:

答案 0 :(得分:0)

试试这个......

//set content mode
self.imageView.contentMode = UIViewContentModeScaleAspectFit;
//clear background color
self.imageView.backgroundColor=[UIColor clearColor];

<强> UIViewContentMode

UIViewContentModeScaleToFill,
UIViewContentModeScaleAspectFit,      // contents scaled to fit with fixed aspect. remainder is transparent
UIViewContentModeScaleAspectFill,     // contents scaled to fill with fixed aspect. some portion of content may be clipped.
UIViewContentModeRedraw,              // redraw on bounds change (calls -setNeedsDisplay)
UIViewContentModeCenter,              // contents remain same size. positioned adjusted.
UIViewContentModeTop,
UIViewContentModeBottom,
UIViewContentModeLeft,
UIViewContentModeRight,
UIViewContentModeTopLeft,
UIViewContentModeTopRight,
UIViewContentModeBottomLeft,
UIViewContentModeBottomRight,

答案 1 :(得分:0)

请勿将UIImage添加到尺寸可能会发生变化的UIImageView。将其添加到另一个UIImageView,并将第二个UIImageView subview作为第一个UIImageView的{​​{1}}。

UIImage *exampleImage = [UIImage imageWithContentsOfFile:filePath];
UIImageView *variableImageView = [[UIImageView alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

CGFloat imageX = (variableImageView.bounds.size.width - exampleImage.size.width) / 2;
CGFLoat imageY = (variableImageView.bounds.size.height - exampleImage.size.height) / 2;

UIImageView *helperImageView = [[UIImageView alloc] initWithFrame:CGRectMake(imageX, imageY, exampleImage.size.width, exampleImage.size.height)];

helperImageView.image = exampleImage;
helperImageView.contentMode = UIViewContentModeScaleAspectFit;

[self.view addSubview:variableImageView];
[variableImageView addSubview:helperImageView];

我希望这会有所帮助。