我有一个UIImageView,有一些固定的矩形。但我的图像尺寸不固定。我想根据UIImageView的rect大小显示图像。无论图像的分辨率是大还是大,它都必须根据UIImageView的大小固定显示。我对使用以下资产感到困惑。
UIViewContentModeScaleToFill,
UIViewContentModeScaleAspectFit,
UIViewContentModeScaleAspectFill,
UIViewContentModeRedraw
在autoresize mask中设置什么? 他们的表现如何?
答案 0 :(得分:88)
请尝试使用此代码,希望它能为您效劳。
将UIImageView
contentMode
设置为UIViewContentModeScaleAspectFill
,如下所示:
imageView.contentMode = UIViewContentModeScaleAspectFill;
设置UIImageView的autoresizingMask如下:
imageView.autoresizingMask =
( UIViewAutoresizingFlexibleBottomMargin
| UIViewAutoresizingFlexibleHeight
| UIViewAutoresizingFlexibleLeftMargin
| UIViewAutoresizingFlexibleRightMargin
| UIViewAutoresizingFlexibleTopMargin
| UIViewAutoresizingFlexibleWidth );
答案 1 :(得分:2)
在swift中你也设置了内容模式
var newImgThumb : UIImageView
newImgThumb = UIImageView(frame:CGRectMake(0, 0, 100, 70))
newImgThumb.contentMode = .ScaleAspectFit
答案 2 :(得分:2)
这是swift的解决方案:
let imageView = UIImageView(image: UIImage(named: "backgroundImage"))
imageView.frame = tableView.frame
imageView.contentMode = .ScaleAspectFill
tableView.backgroundView = imageView
答案 3 :(得分:2)
你只需要这两行:
imageView.contentMode = UIViewContentModeScaleAspectFill;
imageView.layer.clipsToBounds = YES; // Must do this or else image will overflow
答案 4 :(得分:1)
如果您想根据比例制作UIImageView
尺寸,则必须将其模式设为UIViewContentModeScaleAspectFit
yourimage.contentMode=UIViewContentModeScaleAspectFit;
让我知道它的工作与否!!!
快乐编码。
答案 5 :(得分:1)
值得注意的是,swift 3已经改变如下
。ScaleAspectFit
到scaleAspectFit
。ScaleAspectFill
to。scaleAspectFill
答案 6 :(得分:0)
希望这对你有帮助
CGImageRef imageRef = CGImageCreateWithImageInRect([largeImage CGImage], cropRect);
image = [UIImage imageWithCGImage:imageRef]];
CGImageRelease(imageRef);