0

我正在为 ios 7.1 开发 iPhone 应用程序。ViewController层次结构类似于“ - NavigationController> UIViewController-> UIPageViewController-> UITableViewControllers”。NavigationBar是隐藏的。状态栏存在。一切都以编程方式完成。没有使用故事板/Xib。

在 中UIPageViewController,我正在创建一个自定义标题视图(类似于导航栏,但在它自己的视图中)。因此子控制器的视图 ( UITableView) 应该被推到这个标题视图之下。translatesAutoresizingMaskIntoConstraints在将子视图设置为 NO后,我尝试添加约束(“V:[TitleView]-0-[ChildView]”) 。但这导致了一个空白屏幕(标题视图除外)。更改子视图的框架等都没有任何效果。

除了设置上述标志和添加约束外,我没有添加/修改任何自动布局/自动调整大小相关的设置。该应用程序仅支持纵向模式(主页按钮向下)。也不会有任何其他动态布局更改。感谢您是否可以帮助解决此问题。

4

2 回答 2

3

以下是我目前最终得到的解决方案。项目搁置了一段时间,现在正在用 Swift 重写。因此,下面的代码很快。

//in the UIPageViewController
override func viewDidLayoutSubviews()
{
    super.viewDidLayoutSubviews()

    let scrollView = view.subviews[0] as UIView
    scrollView.frame = CGRectMake(scrollView.frame.origin.x, 64, scrollView.frame.size.width, scrollView.frame.size.height - 64)
}

基本上,我在标题视图下方移动和调整页面控制器的默认滚动视图。我不得不承认我对这个解决方案不是很满意。我觉得一定有更好的选择。(为了更安全,您可以迭代子视图以找到滚动视图)。

于 2014-12-06T06:47:48.637 回答
1

查看您的自动调整大小约束page view controller并将其设置为 false。

我认为自动调整大小的不是孩子,而是pageviewcontroller框架。

于 2014-05-27T11:24:55.037 回答