我正在try 用UIImageView以固定大小(UIImageViewxUIImageView)绘制一些缩略图.我已将图像视图的帧大小设置为UIImageViewxUIImageView,并将contentMode设置为UIViewContentModeScaleAspectFill.

我的理解是,这将导致图像以我设置的大小绘制,图像将填充图像区域,并剪裁图像中超出我为图像视图设置的大小的任何部分.然而,图像仍然比我为其设置的100x100大小大或小.

如果我将contentMode设置为UIviewContentModeScaleToFill,那么图像将精确地绘制为contentModexcontentMode,但它会被扭曲以适应这些尺寸.你知道为什么aspect fill没有按预期剪裁吗?

以下是我的代码:

_photoView = [[UIImageView alloc] initWithImage:photoImage];
_photoView.contentMode = UIViewContentModeScaleAspectFill;
[self addSubview:_photoView];

CGRect photoFrame = _photoView.frame;
photoFrame.size = CGSizeMake(100, 100);
_photoView.frame = photoFrame;

为了更好地说明这一点,这里有一个我看到的屏幕截图.绿色方块是包含我正在使用的UIImageViewUIView.我已经将它们的背景色设置为绿色,视图的边框设置为UIViewxUIView.作为测试,UIImageViews的尺寸为50x50.正如你所看到的,当使用...AspectFill时,图像的大小不是50x50,在某些情况下会偏离我想要的位置.使用...ScaleToFill时,尺寸正确,但图像失真.

说明问题的屏幕快照

推荐答案

您可以try 将剪辑设置为边界吗

[_photoview setClipsToBounds:YES];

或者直接在故事板/Xib中,如果可以:

enter image description here

Ios相关问答推荐

如何在KMM项目中处理PHPickerViewController的回调?

Swift locationManager.requestWhenInUseAuthorization() 不提示用户

如何在 Flutter 应用程序中测试来自 App/Play Store 的移动深层链接?

在iOS中使用Swift,即时更改应用语言后,立即改变外观会出现问题

SwiftUI中的Tap手势无法识别视图上的偏移变化

ITMS-90432:将应用上传到应用store 时出现问题

如何以编程方式触发 SwiftUI DatePicker?

UIView 倒置旋转时的zoom 问题

在 Swift 中使用 UITesting 捕获屏幕录像

卡在 Apple 的 SwiftUI 教程第 5 章(更新应用数据)

Xcode 14 需要为 Pod Bundles Select 开发团队

分析应用程序版本时出错 - Apple 提交到store

如何在不同设备的segment控制中管理文本大小(text size)?

如何避免任何绑定空错误并更好地获取代码

如何在 Swift 3 中根据 UIImage 的大小/比率调整 UIImageView 的大小?

iOS:以编程方式制作屏幕截图的最快、最高效的方法是什么?

在 Objective-C 中将所有文本转换为小写

AFNetworking 2.0 向 GET 请求添加标头

在 UITableViewController 中使用 UISearchDisplayController 时断言失败

如何在 iphone 屏幕中间显示活动指示器?