我使用的是imageView,它包含不同的图像,但有些图像会被拉伸。如何在不拉伸的情况下显示图像?我已将contentMode设置为纵横比较。但是,图像的大小不在imageView中,并且大小不同。我想在不拉伸的情况下将图像显示为相同尺寸。
imageview1 = [[UIImageView alloc]initWithFrame:CGRectMake(30, 10, 190, 190)];
imageview1.contentMode = UIViewContentModeScaleAspectFit;
imageview1.clipsToBounds = YES;
答案 0 :(得分:4)
请在设置框架之前尝试设置内容模式,如下所示
imageview1.contentMode = UIViewContentModeScaleAspectFit;
imageview1 = [[UIImageView alloc]initWithFrame:CGRectMake(30, 10, 190, 190)];
imageview1.clipsToBounds = YES;
答案 1 :(得分:2)
如果要显示每个图像而不拉伸且尺寸相同,则将contentMode
实例的UIImageView's
属性设置为UIViewContentModeScaleAspectFill
。例如 -
imageview1 = [[UIImageView alloc]initWithFrame:CGRectMake(30, 10, 190, 190)];
imageview1.contentMode = UIViewContentModeScaleAspectFill;
imageview1.clipsToBounds = YES;
UIViewContentModeScaleAspectFill
将填充image view
的整个区域,保持aspect ratio
完好无损。在填充整个image view
的过程中,垂直或水平长度将完全覆盖,填充将继续,直到其他维度完全填充为止。在此过程中,您的内容(跨垂直或水平)将在框架外可见。要剪切这些额外内容,我们已将clipsToBounds
的{{1}}属性设置为image view
。
YES
将填充UIViewContentModeScaleAspectFit
区域,直到image view's
或vertical
任意长度完全填充,保持宽高比不变。如果您不需要将每个图像显示为与另一个方向相同的大小(如果垂直是完全填充而不是水平,反之亦然),则它非常有用。因为这将在未完全覆盖的方向上显示空白区域。