UIImageView 在顶部使用 presentViewController 时被调整大小

Posted

技术标签:

【中文标题】UIImageView 在顶部使用 presentViewController 时被调整大小【英文标题】:UIImageView getting resized when using presentViewController on top 【发布时间】:2013-07-30 17:22:56 【问题描述】:

我的主 viewController 有 4 个 UIImageViews 占据了整个屏幕。每个都包含一个图像并设置为 UIViewContentModeScaleAspectFit。每个 autoresizingMask 都设置为 UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight。

我有几个模态屏幕,它们通过主 viewController 的 [self presentViewController:_modal animated:YES completion:nil] 呈现;

这就是它变得疯狂的地方。

这适用于几个模态屏幕......但不适用于其他 2 个屏幕。当我展示这些有问题的模态视图控制器中的任何一个时,下面的 UIImageViews 会将帧大小更改为它们包含的图像的实际大小......我不知道为什么。这发生在 iPhone 和 iPad 上。

什么会导致 UIImageView 自行更改其框架/边界?

【问题讨论】:

【参考方案1】:

事实证明,即使我没有使用约束,只是把这行:

_imageView.translatesAutoresizingMaskIntoConstraints = NO;

在我的设置代码中,当使用某些模式视图控制器时,会强制调整子视图的大小。

是的,我也很困惑。

我希望这对那里的人有所帮助。

【讨论】:

ios 6 总是在后台使用约束(我认为)。在情节提要或 xib 中关闭自动布局不会改变这一点,因此在每个视图的基础上禁用自动调整掩码转换仍会将其切换为使用自动布局。

以上是关于UIImageView 在顶部使用 presentViewController 时被调整大小的主要内容,如果未能解决你的问题,请参考以下文章

iOS 在 UIImageView 顶部淡入黑色

Swift - 在 3 个方向(顶部、右侧或底部)随机旋转 UIImageView

仅 UIImageView 顶部和底部的内部阴影(目标 C)

如何在 Obj C 中的 UIImageView 顶部绘制横幅

在 UIImageView 上设置顶部约束会导致 UILabel 固定高度

从 UIImageView 中删除顶部/底部填充