6

我正在通过使用 UIPageViewController 在应用程序中实现水平滚动,我将导航属性设置为“水平”,将过渡样式设置为“滚动”。一切正常,我可以添加一些正确呈现的子视图。我还想通过使用这两种方法来利用 UIPageViewController 具有的内置 UIPageControl:

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

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

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

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

提前感谢您的任何回答!

4

1 回答 1

4

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

如果您创建了自己的几个选项,可以将其显示在您想要的深度,但我建议在顶部创建一个覆盖视图UIPageViewController并将 UIPageControl 添加到该视图,以便两者完全独立。您还可以将页面控件放置在您想要的任何位置。

要跟踪页面更改,请实现UIPageViewControllerDelegateofUIPageViewController并将视图控制器更改转发给您的UIPageControl使用setCurrentPageand setNumberOfPages

于 2013-05-24T05:08:40.163 回答