iPhone:将不同尺寸的 UIImageView 屏蔽为方形尺寸

Posted

技术标签:

【中文标题】iPhone:将不同尺寸的 UIImageView 屏蔽为方形尺寸【英文标题】:iPhone: Mask UIImageView of differing dimensions into square dimension 【发布时间】:2011-01-25 01:16:50 【问题描述】:

我有一堆不同比例的 UIImageView。有些是 100x101,有些是 130x121。

如何将这些遮罩为 80x80 并且不拉伸图像?我基本上只想掩盖每个正方形。 (有点像 Apple 的照片缩略图视图)

【问题讨论】:

【参考方案1】:
    将图像视图的大小设置为 80 x 80 将图像视图的 contentMode 属性设置为 UIViewContentModeScaleAspectFill

    最后,要制作圆角,请使用以下代码,并在实现文件的开头导入 QuartzCore/QuartzCore.h

    CALayer * layer = [myImageView layer];
    [layer setMasksToBounds:YES];
    [layer setCornerRadius:12.0f];
    

已编辑:是的,我所说的尺寸是指框架,WH

【讨论】:

你说设置图像视图的大小。你是说框架吗? UIViewContentModeScaleAspectFill 将图像缩放到视图的边界——只有在纵横比不同时才会裁剪。鉴于@NicHubbard 的描述,我认为他需要UIViewContentModeCenter,这将导致图像绘制全尺寸,并且该图层将遮盖除中心 80x80 部分以外的所有部分。【参考方案2】:

设置其内容模式UIViewContentMode,您可能正在寻找UIViewContentModeScaleAspectFitUIViewContentModeScaleAspectFill

UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 80, 80)];
[imageView setContentMode:UIViewContentModeScaleAspectFit];
[imageView setImage:[UIImage imageNamed:@"myImage.png"];
.
.
.

【讨论】:

以上是关于iPhone:将不同尺寸的 UIImageView 屏蔽为方形尺寸的主要内容,如果未能解决你的问题,请参考以下文章

在 4 英寸 iphone 上查看时 UIImageView 正在向下移动

IPHONE - 以不同时间淡入和淡出 UIImageView

如何以不同的 iPhone/ipad 尺寸将我的应用程序上传到 App Store

UIImageView 在不同设备上保留情节提要“预览屏幕边界” - 框架不根据屏幕尺寸更新

iPhone UIImageView 在 UIScrollView 中水平滚动 - 中心图像?

iPhone 6 plus 的屏幕尺寸问题