UIVcrollView中带有动态高度控制器的UIViewPagerController

时间:2015-02-10 11:50:02

标签: ios swift uiscrollview autolayout uipageviewcontroller

好的,所以我在整个网页上搜索了我特定问题的解决方案,但无法弄清楚。

我正在快速定位iOS 8.1开发一个阅读器应用程序,我的detailviewcontroller(控制器应该显示该文章)具有以下设置:

-UIView
--UIScrollView
---UIView (contentView)
----UIScrollView(horizontal only)
----TextView
----SegmentedControl
----ContainerView (wired up with a UIPageViewController)

PageViewController当前有2个控制器作为子视图,以显示文章或评论(两者:文章内容的动态高度标签/评论的tableviewcells)。在我使用UIPageViewController之前,我使用了UIView作为自定义容器(contentview的直接子视图)和tableview(也是contentview的直接子视图),如果选择了某个segmentindex,我将其切换为隐藏/显示。现在我想使用一种更好的方法,在两个"标签之间滑动"是可能的。所以我在单独的控制器中设计了子视图,这些控制器由pageviewcontroller管理。

问题: 我的UIScrollView没有显示全文的文章/评论。 UIScrollView布局其子视图,稍后pageviewcontroller中包含的viewcontroller将获取数据并填充textview以显示它。我尝试按照Apple here的描述采用Pure AutoLayout方法。所以我设置了从内容视图到滚动视图以及从滚动视图到其超级视图的所有必要约束。由于Scrollview无法正确计算其内容大小(它确实知道有几个子视图和容器视图)我还为内容视图添加了一个高度约束,我试图在运行时替换它。所以我尝试了在SO上列出的几个approches:

iOS: Best way to make a UIScrollView with dynamic height?

How I auto size a UIScrollView to fit the content

和其他教程一样:

http://spin.atomicobject.com/2014/03/05/uiscrollview-autolayout-ios/

但无法让它发挥作用。没有显示任何内容(如果只有占位符高度约束)或者它没有滚动,因为高度是由约束力固定的。例如,如果我在运行时设置了contentView的高度约束,让它说1000,它可以工作但当然它不是动态的,因此它不是我想要的。我希望ScrollView在更改"标签"时随着子视图的增长/缩小而缩放。

我可以根据需要提供代码或构建示例项目来展示问题。到目前为止,我从未遇到过AutoLayout或UIScrollView的任何问题,但这次我不知道如何完成任务。

我希望我能清楚说明一切,有人可以提供帮助。谢谢!

1 个答案:

答案 0 :(得分:0)

请查看我的回购https://github.com/ngominhtrint/ParallaxHeader。我已经使用XLPagerTabStrip来分页视图控制器。希望它有用。

enter image description here