带有自动布局的 UIScrollView:后代在查看区域之外,但视图不滚动

Posted

技术标签:

【中文标题】带有自动布局的 UIScrollView:后代在查看区域之外,但视图不滚动【英文标题】:UIScrollView w/ auto layout: Descendants are outside viewing area but view doesn't scroll 【发布时间】:2014-09-20 17:52:33 【问题描述】:

我正在尝试实现一个滚动视图,虽然最简单的方法一直是设置 contentSize,但我正在尝试以“正确的方式”做事,我的理解是现在可以完成整个通过将子视图固定到顶部/左侧/右侧/底部边缘,在 IB 中实现。

我已经这样做了,它看起来确实应该可以工作。最底部的子视图显示在屏幕外(请参阅 ios 8 视图调试),并且约束都是我所理解的,但视图仍然不滚动。根据很多关于 SO 的答案,我禁用了父 VC 的调整滚动视图插入属性。

附加图片:

320px 绿条是我认为会导致滚动的子视图: 320px green bar is the subview which I thought would cause scrolling

滚动视图和所有子视图的约束: Constraints for the scrollview and all child views

对出了什么问题有什么想法吗?

【问题讨论】:

【参考方案1】:

是的,这令人困惑!诀窍是将所有控件分组到一个内容视图中,然后将滚动视图连接到该内容视图。然后,您只需确保控件相对于内容视图正确地布置自己,就应该一切正常!

哦,确保实现 viewForZoomingInScrollview 并返回内容视图。

【讨论】:

以上是关于带有自动布局的 UIScrollView:后代在查看区域之外,但视图不滚动的主要内容,如果未能解决你的问题,请参考以下文章

带有自动布局的 UIScrollView 中的 UITableViews

带有自动布局的 uiscrollview 的动态内容未按预期工作

UIScrollView 在带有自动布局的 UITabBarController 中有一个无法解释的位置

我的带有自动布局约束的 Swift 4 UIScrollView 没有滚动

UIScrollView 滚动视图控制器损坏的自动布局

如果自动布局打开,防止 UIScrollView 水平滚动