有没有办法可以操作父视图控制器,以便子视图位于UIPageControl下面?

时间:2013-02-20 14:58:57

标签: objective-c uipagecontrol uipageviewcontroller layoutsubviews

我正在使用UIPageViewController在应用程序中实现水平滚动,我将导航属性设置为“Horizo​​ntal”,将Transistion Style设置为“scroll”。 一切正常,我可以添加一些正确呈现的子视图。我还想利用UIPageViewController内置的UIPageControl,利用这两种方法:

-(NSInteger)presentationIndexForPageViewController:(UIPageViewController *)pageViewController
-(NSInteger)presentationCountForPageViewController:(UIPageViewController *)pageViewController

这实际上显示了我正在寻找的东西:指示显示哪个子视图的点。 但是,正如您在图像中看到的那样,UIPageControl设置在父视图控制器(UIPageViewController)的底部。您可以想象这不是我想要呈现我的UIPageControl的方式。有没有办法可以操作父视图控制器,以便子视图位于UIPageControl下面?还是有其他好的做法来实现这一目标吗? 我知道我可以通过使用scrollView而不是UIPageViewController来实现水平滚动,但这似乎对我来说效率更高。

http://i48.tinypic.com/2hd03ev.png

为了清晰起见:灰色部分是我的子视图,红色部分是我正在使用的底层UIPageViewController。

提前感谢您的回答!

1 个答案:

答案 0 :(得分:4)

一种解决方案是创建和管理您自己的UIPageControl,而不是使用内置的。{/ p>

如果你创建了自己的几个选项可以在你想要的深度显示它,但是我建议在UIPageViewController之上创建一个覆盖视图并添加UIPageControl,这样两者就完全了独立。您还可以将页面控件放在任何您想要的位置。

要跟踪网页更改,请实施UIPageViewControllerDelegate UIPageViewController并使用UIPageControlsetCurrentPage将视图控制器更改转发至setNumberOfPages