带有自动布局的滚动视图内的iOS 8 imageView不起作用

Posted

技术标签:

【中文标题】带有自动布局的滚动视图内的iOS 8 imageView不起作用【英文标题】:iOS 8 imageView inside scrollView with autolayout not working 【发布时间】:2014-10-21 04:48:02 【问题描述】:

这是一个非常简单的ViewController。我在scrollView 中有一个imageView。使用自动布局,我将scrollview 的约束设置为其view 的边缘。另外,imageView 模式为AspectFit

图像是在运行时提供的,它可以是横向或纵向尺寸。当我运行应用程序时,图像不适合当前的屏幕尺寸。似乎scrollView 的边界没有得到尊重,因此只显示了部分图像。它曾经在 ios7 和 xcode5 上工作,但在 ios8 xcode6 上坏了。

有什么想法吗?我需要尽可能保持使用自动布局。

【问题讨论】:

【参考方案1】:

您将设置 imageviews 水平约束并将它们固定到 self.view(滚动视图父视图)而不是滚动视图。

这里有一个很好的例子: Using UIScrollView with Auto Layout in iOS

【讨论】:

谢谢...我会尝试这个解决方案。似乎可以完成工作。尽快通知您 嘿,我也遇到了类似的问题,我在两边都设置了约束,左边有效,右边无效,如果找到解决方案,请务必在此处发布,谢谢! 【参考方案2】:

试试这个完全缩小

[self.scrollView zoomToRect:self.imageView.frame animated:YES];

【讨论】:

【参考方案3】:

您是否尝试过在 viewDidLoad 中调用 imageView.sizeToFit()?我的印象是 imageView 的大小在设置出口之前是可变的。调用 sizeToFit 会强制解决问题。

【讨论】:

以上是关于带有自动布局的滚动视图内的iOS 8 imageView不起作用的主要内容,如果未能解决你的问题,请参考以下文章

尝试理解 iOS 8 中的 UIScrollView 自动布局

自 IOS 8 以来使用自动布局和滚动视图的额外顶部空白

带有自动布局的 UIScrollView 中的 UITableViews

iOS自动布局:相等的空间以适应超级视图宽度[重复]

ScrollView 自动布局内的 TableViews

在自动布局的情况下,IOS scrollview 模糊的可滚动内容高度