UIPageViewController 最后一个视图没有页面指示器
UIPageViewController with a last view without page indicator
我想要 4 个视图,用户可以向左或向右滑动。
为此,我打算使用 UIPageViewController。
特别的是最后一个视图根本不应该有页面指示符。我想用最后一个之前的视图将它刷掉。这可以用 UIPageViewController 实现吗?
这是滑动到最后一个视图的图片:
我认为UIPageViewController
不可能实现你所说的。因为你现在无法获取当前视图移动了多远的值。
要获得该值,您可以自定义 UIScrollView
并在委托方法中自行设置页面指示器的动画 - scrollViewDidScroll:
没有内置支持有条件地显示页面控件,具体取决于您所在的页面。
- 如果你可以让
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];
但是,这不会将其从视图中删除,页面控件的手势仍将处于活动状态。
我想要 4 个视图,用户可以向左或向右滑动。 为此,我打算使用 UIPageViewController。
特别的是最后一个视图根本不应该有页面指示符。我想用最后一个之前的视图将它刷掉。这可以用 UIPageViewController 实现吗?
这是滑动到最后一个视图的图片:
我认为UIPageViewController
不可能实现你所说的。因为你现在无法获取当前视图移动了多远的值。
要获得该值,您可以自定义 UIScrollView
并在委托方法中自行设置页面指示器的动画 - scrollViewDidScroll:
没有内置支持有条件地显示页面控件,具体取决于您所在的页面。
- 如果你可以让
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];
但是,这不会将其从视图中删除,页面控件的手势仍将处于活动状态。