2017-03-17 97 views
0

有一个问题给你们。在我的计划,我有一个通过this.NavigationController.AddChildViewController(pvController)添加为子视图控制器,并通过View.AddSubview(pvController.View)InsertSubviewBelow无法正常工作;查看显示高于其他视图

添加为我现在的观子视图我添加了一个转变我的看法,使得其向下滑动在Y一UIPageViewController轴250个单位:

UIView.Transition(this.View, 1.5, UIViewAnimationOptions.CurveEaseOut,() => 
      { 
       this.View.Frame = animateTo; 
      }, null); 

我想另一个UIViewUIPageViewController.View这样,当我触发我的过渡,另一种观点似乎滑入到位后面。问题是,我已经尝试了很多种方法来做到这一点无济于事。这里是所有的,我已经尽力做到这一点迄今方式:

 View.SendSubviewToBack(behind); 
     pvController.View.InsertSubviewBelow(behind, pvController.View); 
     pvController.View.InsertSubviewAbove(behind, pvController.View); 
     pvController.View.SendSubviewToBack(behind); 

他们都产生相同的事情:UIView的behind显示以上pvController.View

任何人有任何想法?非常感谢帮助!

回答

0

不是您的问题的解决方案,而是您可以用来帮助解决问题的方法。

在XCode中,有可能使用debug your view hierarchy,它可以帮助您查看视图的位置。

要访问此功能,请点击该窗口上,而您的应用程序是在一个断点:

enter image description here

这将然后显示在Xcode中以下内容:

enter image description here

希望,这可以帮助您找出视图的位置。

+0

我很欣赏brotha,绝对是我以前没有的额外知识。但是,我只是想出了如何去做我正在寻找的东西,如下所示。谢啦! –

0

只是修好了!这比我想象的要简单一些。尽管如此,我还是想知道为什么InsertSubviewBelow不起作用。

这里是我做过什么来实现我想要的效果:

View.AddSubview(pvController.View); 
View.AddSubview(behind); 
View.SendSubviewToBack(behind); 

和视图加载时,ViewDidLoad()后,behind确实落后pvController.View