Oli*_*bel 9 objective-c ios uipageviewcontroller swift
我有一个显示不同页面的UIPageViewController.当前的行为是当我到达最后一页时它停止滚动.我现在想要实现的是,当在最后一页并向右滚动时,它会转到第一页.在第一页时,向左滚动时转到最后一页.所以基本上让PageViewController以圆圈形式显示页面.我的第一种方法在有多个页面或从一个页面开始时效果很好:
- (UIViewController*) pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(TMCollectionViewController *)viewController
{
if((viewController.pageIndex) >= 1)
{
return _viewControllers[viewController.pageIndex - 1];
}
else
{
if ([_viewControllers count] == 1) {
return nil;
}
return [_viewControllers objectAtIndex:[_viewControllers count]-1];
}
}
Run Code Online (Sandbox Code Playgroud)
但是,当我删除页面以便只剩下一个页面时,它仍然会记住页面之前或之后,并相应地显示它.即使数组中只剩下一页.任何帮助都非常感谢.
Hee*_*ena 13
你可以实现它
当您在第一个索引上并向左滑动时,使其索引=总页数
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController
{
NSUInteger index = ((PageContentViewController*) viewController).pageIndex;
if ((index == 0) || (index == NSNotFound)) {
index = self.pageTitles.count;
}
index--;
return [_viewControllers objectAtIndex:index];
}
Run Code Online (Sandbox Code Playgroud)
当您在最后一个索引上时,将其设置为零索引
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController
{
NSUInteger index = ((PageContentViewController*) viewController).pageIndex;
if (index == NSNotFound) {
return nil;
}
index++;
if (index == [self.pageTitles count]) {
index = 0;
}
return [_viewControllers objectAtIndex:index];
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5200 次 |
最近记录: |