我的iPhone应用程序中有一个页面视图控制器。 该视图是使用Interface Builder和一个类来pipe理的。 这个类扩展 UIPageViewController <UIPageViewControllerDataSource,UIPageViewControllerDelegate> 我使用了以下function页面指示器。 -(NSInteger)presentationCountForPageViewController:(UIPageViewController *)pageViewController {} -(NSInteger)presentationIndexForPageViewController:(UIPageViewController *)pageViewController {} 但是,我的应用程序中的页面数量增加了,页面指示符超出了我当前的视图(起点和终点)。 有没有什么办法可以使用类似的显示器来换行标签等。任何页面指标的替代品也是受欢迎的。
目标是创build一个只能向前导航的UIPageViewController。 我正在使用数据源为UIPageViewController提供内容。 方向设置为UIPageViewControllerNavigationDirectionForward ,过渡风格是UIPageViewControllerTransitionStyleScroll 。 实施 – (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController { // returns the next view controller } 返回下一个视图控制器,而下面的应该确保向后导航是不可能的 – (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController { return nil; } 返回零应表明导航不可能(如文档中所述)。 不过,我总是可以向后滚动一页。 比方说,我有10页,我可以向前滚动所有页面,但在任何页面,我可以向后滚动1页。 (例如:在第5页,我可以回到第4页,在第8页,我可以回到第7页,等等。) 我知道我可以通过不使用数据源,并使用setViewControllers:direction:animated:completion:方法来避免这种情况,但我想知道为什么我的尝试失败。
我使用UIPageViewController与导航设置为水平,过渡样式设置为滚动(在InterfaceBuilder中),并没有脊柱。 这给了我一个可爱的UIPageControl集成。 现在我想能够切换是否显示(因为它下面有艺术作品)。 我已经尝试设置presentationCountForPageViewController和presentationIndexForPageViewController返回0,当UIPageControl应该被隐藏,但是这些方法不会被调用,当我想要的。 暂停stacktrace,我看到它们被[UIPageViewController _updatePageControlViaDataSourceIfNecessary]调用…我假设我的应用程序将被拒绝,如果我试图使用该方法。 我是否应该通过子视图来追踪它,或者滚动我自己以便控制它,还是有一些更好的方法来切换其可见性? 谢谢!
我有一个UIPageViewController来处理我的“书”的页面。 但是,每个书页都是一个以UIScrollView作为subview的ViewController 。 由于contentSize , UIScrollView只能垂直滚动。 问题是,当用户垂直滚动滚动scrollview ,由于滚动scrollview仍在滚动/减速,用户无法翻页。 查看这个非常简单的方法是滚动页面,然后尝试点击视图的边缘。 这通常会改变页面,并且当scrollview不移动时它确实改变页面。 但是,当它移动时,水龙头会导致滚动视图停止移动,而不是翻页。 如果UIPageViewController试图通过点击或平移页面以使页面转动animation使用手势来转动页面,我如何取消scrollviews手势? 有关我想要实现的行为的示例,请查看iPhone上Twitter的官方客户端。 当Feed从滚动中减速时,可以从Timeline滑动到Discover。
我有一个QuizViewController它扩展了UIViewController , UIPageControllerDelegate和一个UIPageViewControllerDataSource 。 里面QuizViewController.swift private var pageViewController: UIPageViewController? private func createPageViewController() { let pageController = self.storyboard!.instantiateViewControllerWithIdentifier("QuizPageViewController") as! UIPageViewController pageController.dataSource = self if pageInfo.count > 0 { let firstController = getItemController(0)! let startingViewControllers: NSArray = [firstController] pageController.setViewControllers(startingViewControllers as? [UIViewController], direction: UIPageViewControllerNavigationDirection.Forward, animated: false, completion: nil) } pageViewController = pageController addChildViewController(pageViewController!) self.view.addSubview(pageViewController!.view) pageViewController!.didMoveToParentViewController(self) } private func […]
我已经以这种方式实现了UIPageViewController: GalleryViewController :是PageViewController的容器 PageViewController :是我把它作为子视图添加到GalleryViewController的pageViewController。 PageContentViewController :我把UIImageView作为页面视图控制器的内容。 一切都很顺利,但当我在图像之间滑动时,会发生奇怪的事情。 上方出现白色的空白。 奇怪的是当我完成滚动它自动延伸。 这是GalleryViewController的代码,它是PageViewController的容器: import UIKit class PageViewController: UIViewController, UIPageViewControllerDataSource, UIPageViewControllerDelegate { var startIndex:Int = 0 var pageViewController : UIPageViewController! override func viewDidLoad() { self.navigationController?.hidesBarsOnTap = true; reset() } func reset() { /* Getting the page View controller */ pageViewController = self.storyboard?.instantiateViewControllerWithIdentifier("PageViewController") as UIPageViewController self.pageViewController.dataSource = self let […]
所以我想创build一个类似ibooks的阅读器,并且需要在从webservice获取数据后dynamic更新UIPageViewController的内容。 由于很长的一系列原因,我必须在开始时将它初始化,然后在数据到来时进行更新。 我是这样创build的: NSDictionary *options = [NSDictionary dictionaryWithObject: [NSNumber numberWithInteger:UIPageViewControllerSpineLocationMin] forKey: UIPageViewControllerOptionSpineLocationKey]; self.pageController = [[UIPageViewController alloc] initWithTransitionStyle:UIPageViewControllerTransitionStylePageCurl navigationOrientation:UIPageViewControllerNavigationOrientationHorizontal options: options]; self.pageController.dataSource = self; self.pageController.delegate = self; [[self.pageController view] setFrame:[[self view] bounds]]; MovellaContentViewController *initialViewController = [self viewControllerAtIndex:0]; self.controllers = [NSArray arrayWithObject:initialViewController]; [self.pageController setViewControllers:self.controllers direction:UIPageViewControllerNavigationDirectionForward animated:NO completion:nil]; [self addChildViewController:self.pageController]; [[self view] addSubview:[self.pageController view]]; [self.pageController didMoveToParentViewController:self]; 然后我只是设置self.controllers = […]
我试图改变UIPageViewController阴影颜色,同时做一个翻转animation。 但总是只显示白色。 如何将翻转侧背景颜色的颜色改变为其他颜色,如(黑色或sephia)。 iBook正在做同样的事情。 我提到,下面的图像有白色的颜色,我会改变。 截图:
我一直在UIViewControllers之间滚动示例应用程序,但重点是我想禁用滚动效果在滚动和返回到第一个UIViewController 。 这里是我的代码: class PageViewController: UIPageViewController,UIPageViewControllerDataSource, UIPageViewControllerDelegate{ var index = 0 var identifiers: NSArray = ["FirstNavigationController", "SecondNavigationController"] override func viewDidLoad() { self.dataSource = self self.delegate = self let startingViewController = self.viewControllerAtIndex(self.index) let viewControllers: NSArray = [startingViewController] self.setViewControllers(viewControllers as [AnyObject], direction: UIPageViewControllerNavigationDirection.Forward, animated: false, completion: nil) } func viewControllerAtIndex(index: Int) -> UINavigationController! { let storyBoard : […]
我有一个UIPageViewController,当我们向左或向右滑动页面时,它工作正常。 class ViewController: UIViewController, UIPageViewControllerDataSource { … } 现在我打算在页面上提供Previous / Nextbutton,这样就可以通过点击这些button来打开页面。 我如何触发滑动左/右行为或编程翻页? 注意这是SWIFT语言的问题,而不是Objective-C。