为纵向和横向模式调整 UIImage 的大小

Posted

技术标签:

【中文标题】为纵向和横向模式调整 UIImage 的大小【英文标题】:Resize UIImage for Portrait and landscape modes 【发布时间】:2010-11-02 13:02:07 【问题描述】:

我有一些为 iPad 纵向模式设计的图像。它们旨在覆盖全屏,现在当我将 ipad 旋转到横向时,我会调整 imageview 的框架以在横向模式下覆盖 ipad 屏幕,但这会突然扰乱图像的纵横比和比例,如何调整图像的大小以保留纵横比比率 其次,我有一个带有缩略图的表格视图,这些缩略图是由用户保存的(使用 NSUserDefaults),但这会导致我的表格视图滚动缓慢。我知道如果我从网络上获取图像,我们可以使用延迟加载……但是什么在这种情况下..

请帮忙.....

【问题讨论】:

【参考方案1】:

第一个问题:需要设置contentMode property of the UIImageView,继承自UIView。默认是 UIViewContentModeScaleToFill,但我怀疑你想要 UIViewContentModeScaleAspectFit。

第二个:恐怕又是延迟加载了。表格视图完全围绕仅在需要时分配的单元格,并且您可能不希望在创建单元格时同步加载图像,因为这会导致烦人的用户界面停顿。特别是在较旧的设备和 iPod 上,磁盘速度不是很好,并且通过存储在 NSUserDefaults 中,您需要进行昂贵的转换。将它们放在您的文档或缓存文件夹中并将文件名保留在用户默认值中可能会更快。

【讨论】:

【参考方案2】:

AspectFill 将保持纵横比并填充整个容器 AspectFit 将保持纵横比并填充容器,直到一个维度到达边界 - 所以图像周围会有一些边界。

您如何加载缩略图?如果它们很小,您可以将图像存储在 NSDictionary 中(但在编辑时要小心修改它!),或者如果有很多,您可以将文件引用存储在字典中。

【讨论】:

【参考方案3】:

我最终为纵向和横向版本使用了不同的图像...而对于 tableview,我最终使用了延迟加载

【讨论】:

以上是关于为纵向和横向模式调整 UIImage 的大小的主要内容,如果未能解决你的问题,请参考以下文章

纵向模式和横向模式视图显示调整与手机大小

使 UIImageView 及其 UIImage 按比例缩放而无需额外的填充

自动布局可以调整 UITableView 的大小以在 ipad 上纵向增长和横向缩小吗?

UIImage 未根据 UIImageView 大小宽度和高度调整大小

iPad添加视图然后告诉它根据方向模式调整大小?

如何将 UIImage 旋转 90 度?