UIPageViewController 带有最后一个视图,没有页面指示器
Posted
技术标签:
【中文标题】UIPageViewController 带有最后一个视图,没有页面指示器【英文标题】:UIPageViewController with a last view without page indicator 【发布时间】:2015-06-12 14:48:19 【问题描述】:我希望有 4 个视图,用户可以向左或向右滑动。 为此,我打算使用 UIPageViewController。
特别的是最后一个视图根本不应该有页面指示器。我想用最后一个视图之前的视图将它扫掉。 UIPageViewController 可以做到吗?
这是滑动到最后一个视图的图片:
【问题讨论】:
您想要 a) 每页四个点,还是 b) 前四页五个点,最后一页没有点? 抱歉截图不正确 - 我想要 b) - 最后一页不应该被计算 【参考方案1】:我认为用UIPageViewController
实现你所说的是不可能的。因为您现在无法获得当前视图移动多远的值。
要获得该值,您可以自定义 UIScrollView
并在委托方法 - scrollViewDidScroll:
中自己为页面指示器设置动画
【讨论】:
任何想法我可以使用什么?我已经为此使用了自定义交互式过渡,但我发现滚动视图 (UIPageViewController) 滑动非常闷【参考方案2】:没有内置支持有条件地显示页面控件,具体取决于您所在的页面。
如果您可以让UIPageViewController
查询其UIPageViewControllerDataSource
,您可以尝试在转换到最后一个视图控制器时从presentationCountForPageViewController:
返回0,但这绝不是一个好的解决方案,因为您正在尝试规避控制者在内部为您管理的内容。
您可以使用UIAppearance
更改UIPageControl
的颜色。
这可用于仅对特定视图控制器应用样式,如下所示:
UIPageControl *pageControl = [UIPageControl appearanceWhenContainedIn:[LastViewController class], nil];
pageControl.pageIndicatorTintColor = [UIColor clearColor];
pageControl.currentPageIndicatorTintColor = [UIColor clearColor];
pageControl.backgroundColor = [UIColor clearColor];
但是,这不会将其从视图中移除,并且页面控件的手势仍将处于活动状态。
【讨论】:
以上是关于UIPageViewController 带有最后一个视图,没有页面指示器的主要内容,如果未能解决你的问题,请参考以下文章
带有 PageControl 的 UIPageViewController
带有 UINavigationBar 的 UIPageViewController 内的 UIWebView