相关疑难解决方法(0)

UIPageViewController手势识别器

我已经在申请了一段时间,但由于NDA,我无法提出这个问题.

我的Viewcontroller加载了UIPageViewController.视图控制器具有由PageViewControllers手势识别器覆盖的按钮.例如,我在viewcontroller的右侧有一个按钮,当你按下按钮时,PageViewController接管并更改页面.

如何让按钮接收触摸并取消PageViewController中的手势识别器?

我认为PageViewController使我的ViewController成为其视图的子视图.

我知道我可以关闭所有的手势,但这不是我正在寻找的效果.

宁愿不子类PageViewController苹果表示,这个类是不是要被继承.

uigesturerecognizer ios

55
推荐指数
2
解决办法
5万
查看次数

禁用UIPageViewController反弹

搜索了很多这个,但还没找到合适的解决方案.

是否可以禁用a的反弹效果UIPageViewController并仍然使用UIPageViewControllerTransitionStyleScroll

iphone objective-c ios uipageviewcontroller

46
推荐指数
4
解决办法
3万
查看次数

Swift中的PageViewController当前页面索引

我想获取pageViewController的当前索引,我不知道如何获取可见页面索引.

func pageViewController(pageViewController: UIPageViewController, didFinishAnimating finished: Bool,previousViewControllers: [UIViewController],transitionCompleted completed: Bool)
{
    // How to get it?

}
Run Code Online (Sandbox Code Playgroud)

uiviewcontroller uipagecontrol ios uipageviewcontroller swift

26
推荐指数
5
解决办法
3万
查看次数

UIPageViewController:获取currentPage

在过去的几天里,我一直在努力解决这个问题,经过这个杂耍之后,我发现我只需要数据源方法的当前索引来更新当前可见的页码

我有这个UIPageViewController数据源方法,我需要使用当前索引来获取委托方法的当前可见页面previousViewControllers transitionCompleted:(BOOL)completed

- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController
   viewControllerAfterViewController:(UIViewController *)viewController { 
    NSString *path = [[NSBundle mainBundle] pathForResource:@"pages" ofType:@"pdf"];

    NSURL *pdfurl = [NSURL fileURLWithPath:path];
    PDFDocument = CGPDFDocumentCreateWithURL((__bridge CFURLRef)pdfurl);

    contentViewController = [[ContentViewController alloc] initWithPDFAtPath:path];

    currentIndex = [modelArray indexOfObject:[(ContentViewController *)viewController page]];

    if (currentIndex == totalPages - 1) {  
        return nil;
    }

    contentViewController.page = [modelArray objectAtIndex:currentIndex + 1];

    return contentViewController;
}
Run Code Online (Sandbox Code Playgroud)

我对如何将当前索引语句从datasource方法写入委托方法以更新当前可见页面感到困惑.

- (void)pageViewController:(UIPageViewController *)pageViewController didFinishAnimating:(BOOL)finished previousViewControllers:(NSArray *)previousViewControllers transitionCompleted:(BOOL)completed{

    if (!completed)
    {
        return;
    }

    //currentIndex = [[self.pageViewController.viewController lastObject]];  
    currentIndex = [self indexOfObject:contentViewController]; …
Run Code Online (Sandbox Code Playgroud)

iphone objective-c ios6

24
推荐指数
5
解决办法
3万
查看次数

UIPageController与UIPageControl相结合?

我一直在使用UIPageController不同的控制器之间导航.现在我想在底部添加这些点,这样用户就可以看到他在哪个控制器上.这是通过UIPageControl.是否有简单的方法将这两者结合起来?

uipagecontrol ios

16
推荐指数
2
解决办法
1万
查看次数

我应该在presentationIndexForPageViewController中返回什么:对于我的UIPageViewControllerDataSource?

presentationIndexForPageViewController返回值的文档说:

返回要在页面指示器中反映的所选项目的索引.

但是,这很模糊.当用户滚动浏览页面视图控制器时,它是否会调用此方法并期望正确的索引?

此外,还没有保证什么时候 pageViewController:viewControllerBeforeViewController:pageViewController:viewControllerAfterViewController : . 文档刚提到:

响应于导航手势,[An]对象[提供]视觉控制器根据需要基于页面视图控制器.

事实上,我已经看到在某些情况下发生缓存.例如,如果您向前导航两个页面,它看起来只会被取消分配.否则,它希望将其保留在缓存中,以防用户在页面视图控制器中向后移动.

这是否意味着我需要一种一致的方式来通过注册作为UIPageViewControllerDelegate然后不断更新此值来知道当前正在显示哪个页面?

objective-c ios uipageviewcontroller

11
推荐指数
1
解决办法
3674
查看次数

如何在页面视图控制器中获取当前视图控制器

我想在页面视图控制器中获取当前的视图控制器.怎么做 是否有一些代表打电话或什么.

iphone objective-c uiviewcontroller ipad ios

7
推荐指数
2
解决办法
7388
查看次数

向后或向前滑动时检查UIPageViewController

我想用这个跟踪索引UIPageViewController.每当我刷卡我需要index++index--.无论何时向后或向后滑动,都会调用此委托方法:

- (void)pageViewController:(UIPageViewController *)pvc didFinishAnimating:(BOOL)finished previousViewControllers:(NSArray *)previousViewControllers transitionCompleted:(BOOL)completed
{
    // If the page did not turn
    if (!completed)
    {
        // You do nothing because whatever page you thought
        // the book was on before the gesture started is still the correct page
        return;
    }

    // I want to check here whenever the page was swiped back or further
}
Run Code Online (Sandbox Code Playgroud)

如果用户向后或向后滑动,我该如何检查此方法?我知道有2个DataSource方法"viewControllerAfterViewController"和"viewControllerBeforeViewController",但我无法检查页面转换是否已完成(我可以在上面的方法中执行此操作)任何想法我怎么知道用户是否向后滑动或进一步以上方法?

iphone objective-c ios

6
推荐指数
2
解决办法
1万
查看次数

获取 UIPageViewController 当前索引的可靠方法

我正在寻找一种可靠的方法来跟踪 UIPageViewController 当前索引。

这个问题是众所周知的;尽管 viewController 被正确呈现,但很难跟踪当前索引。

我认为在 SO 社区中刷新这个主题会很好,因为它由于某种原因仍未解决

我在这里浏览了许多线程,但大多数答案都已过时或标记为不可靠(结果取决于用户是完全滑动还是仅滑动了一半等)

我访问过这个线程,但它没有提供任何明确正确的答案。

我试过了:

1) 跟踪 viewController 的视图标签 -链接- 总是返回 0

2)查看两个 UIPageViewController 方法中的索引变量,viewControllerBeforeViewController以及viewControllerAfterViewControlle

它的结果是不可预测的,有时它会跳过一个索引等。

有没有人想出一个好方法,可靠的方法来跟踪 UIPageCiewController 索引以利用它(例如打印当前索引)?

我很欣赏 obj-c 和 swift 实现,但 swift 是我正在寻找的。

objective-c ios uipageviewcontroller swift

5
推荐指数
1
解决办法
1493
查看次数