簡體   English   中英

UIImage不應在UIImageView內拉伸

[英]UIImage should not stretched inside the UIImageView

圖像尺寸為480X360

我在xib中使用UIImageView 該應用程序專為無需自動布局的多設備而設計。 這意味着我正在使用自動調整大小。我想做的是,只有UIImageView不能自動調整UIImageView內的Image的大小,但是不幸的是,我的圖像也可以通過UIImageView拉伸。 我嘗試了不同的方法,但沒有成功。 也更改了內容模式,但對我不起作用。

嘗試這個...

//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,

不要將UIImage添加到要更改其大小的UIImageView 將其添加到另一個UIImageView ,並使第二個UIImageView成為第一個UIImageViewsubview

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

我希望這有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM