Tag: uipageviewcontroller

iOS 7 iPad:UITableView在UIPageViewController中进行滑动删除(冲突手势识别器)

我正在iOS 7 iPad应用程序的“用户configuration文件”部分工作。 在这个领域,我们通过一系列页面向用户介绍他们自己的信息 – 传记信息,家庭,联系信息等。我设置的方式是通过UIPageViewController,其中用户configuration文件的每个页面是它自己的UIViewController(带有一个UIScrollView,因为每个页面都可以变长),这样用户就可以在页面之间平滑地滑动。 在一些页面上,我们也有UITableViews(不占用整个屏幕,因为这是一个iPad应用程序,而不是iPhone应用程序),供用户添加信息。 因此,这些页面上的总体简化视图层次将是: UIPageViewController UIScrollView中 UITableView的 我希望用户能够使用滑动删除手势从UITableView中删除单元格。 不幸的是,在UITableView中激活滑动删除的平移手势被UIPageViewController拾取,并滚动到下一页,而不是显示删除button。 获得删除button显示是非常不一致的 – 可能是9倍,10将滚动到下一页,而不是。 理想情况下,我将访问UIPageViewController的平移手势识别器,并尝试设置它与UITableView的平移手势识别器之间的一些依赖关系,或者让UIPageViewController的手势识别器不在UITableViewController区域内触发某些逻辑。 但是,由于这种现象 (无论是错误还是function),我不能访问UIPageViewController的手势识别器,所以我不能做像设置他们的委托和覆盖像gestureRecognizerShouldBegin方法的东西。 我也无法获得UIPageViewController视图的手势识别器。 有没有人有任何想法来解决这个问题?

UIPageViewController UIImage不显示全屏

我正在制作一个标签视图控制器的应用程序。 对于第一个选项卡,我有一个滚动浏览图片的UIPageViewController。 一切工作正常,除了图片不显示全屏。 我为图像视图设置了约束来覆盖整个视图控制器,但是当它被加载到页面视图中时,它并没有覆盖到底部。 图像被滚动的点指示器切断,然后只是白色的。 我确定它很简单,但是有没有一种方法可以让图像覆盖整个屏幕,就像我设置的约束一样?

UIPageViewController和UIPageControl透明背景颜色 – iOS

我正在做一个教程,当应用程序首次启动,并使用UIPageViewController 。 一切工作正常,但UIPageViewController的背景颜色不透明。 它总是黑色的,如下所示: 这是我如何添加UIPageViewController (在一个UIPageViewController控制器) .h文件: @interface CHMainTabViewController : UITabBarController <UIPageViewControllerDataSource> @property (strong, nonatomic) UIPageViewController *pageViewController; @end .m文件(在viewDidLoad ): // Create page view controller self.pageViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"PageViewController"]; self.pageViewController.dataSource = self; self.pageViewController.view.backgroundColor = [UIColor clearColor]; TutorialViewController *startingViewController = [self viewControllerAtIndex:0]; NSArray *viewControllers = @[startingViewController]; [self.pageViewController setViewControllers:viewControllers direction:UIPageViewControllerNavigationDirectionForward animated:NO completion:nil]; [self presentViewController:_pageViewController animated:YES completion:nil]; 在我的AppDelegate.m中,我还设置了UIPageControl的背景色: […]

iOS – UIPageViewControllerDataSource方法调用两次

我发现了两个UIPageViewControllerDataSource方法的一个奇怪的问题:第一次进入页面视图控制器场景并拖动控制器的内容时​​,无论拖动方向是什么,都会调用这两个数据源方法。 我想,当我在第一页,并拖动到右侧,这意味着没有更多的页面之前的第一页,这两个方法都不应该被调用。 如果我拖动到左边,只有after方法应该被调用。 我按照这个post设置了视图控制器(除了我在故事板上没有单独的页面视图控制器,我用传统的[UIPAgeViewController alloc] init]方法来实例化控制器)。 以下是我的代码: 对于实际显示页面视图控制器内容的视图控制器(只显示viewDidLoad的相关部分): – (void)viewDidLoad { // initialize page view controller _pageViewController = [[UIPageViewController alloc] initWithTransitionStyle:UIPageViewControllerTransitionStyleScroll navigationOrientation:UIPageViewControllerNavigationOrientationHorizontal options:nil]; self.pageViewController.delegate = self; self.pageViewController.dataSource = self; // set up the initial scene of the page view controller UIViewController *viewController = [self viewControllerAtIndex:0]; [self.pageViewController setViewControllers:@[viewController] direction:UIPageViewControllerNavigationDirectionForward animated:NO completion:nil]; // adjust the size of […]

API JSON&UIPageViewController可选无

好吧,我正在试图找出一个pageview滑块,它使用本教程作为基础从API中检索图像url。 我已经编码图像的asynchronous下载并将其附加到pageImages数组。 这部分工作正常。 但是,当我尝试在模拟器中运行应用程序时,收到错误消息: 致命错误:意外地发现零,而解包一个可选值 出于某种原因,在调用我的帮助器方法viewControllerAtIndex后,获取JSON对象并填充pageImages数组。 我的代码 class ViewController: UIViewController, UIPageViewControllerDataSource { var pageViewController: UIPageViewController! var pageImages = NSArray() var jsonData = NSArray() override func viewDidLoad() { super.viewDidLoad() ###THIS EXECUTES AFTER MY HELPER METHOD viewControllerAtIndex self.fetchPublishers() self.pageViewController = self.storyboard?.instantiateViewControllerWithIdentifier("PageViewController") as! UIPageViewController self.pageViewController.dataSource = self var startVC = self.viewControllerAtIndex(0) as ContentViewController var viewControllers = NSArray(object: startVC) […]

将计时器设置为UIPageViewController

我试图让UIPageViewController每5秒浏览页面。 如何在Swift中做到这一点? 有没有什么办法显式调用viewControllerAfterViewController ? var timer = NSTimer.scheduledTimerWithTimeInterval(5, target: self, selector: Selector("update"), userInfo: nil, repeats: true) func update() -> UIViewController { // can u please tell me what to add here } func pageViewController(pageViewController: UIPageViewController, viewControllerBeforeViewController viewController: UIViewController) -> UIViewController? { var index = (viewController as tourViewControllerhelper).pageIndex if (index == 0) || (index == NSNotFound) […]

epub阅读器来处理大的html文件

我正在IOS平台上创build一个epub阅读器。 基本上,它使用UIWebview来显示epub文件,我读了开源的Aepubreader的代码,发现它非常好,但不是基于文本。 我想使它基于文本和页面转向像iBooks。 所以我尝试改进Aepubreader 基本的逻辑stream程是 解压epub文件。 parsing元数据(opf,toc文件)。 通过UIWebView加载html文件并将其绑定到UIPageViewController 除了表演,一切都很好。 假设epub有十个html文件(file1 – file10)。 file1〜file9是小尺寸(如100k),但是文件10是1MB。 当我读到file10的第一页时,加载这个1MB文件花费了很多时间。 这是可以接受的,因为这是第一次。 但是当我转到file10的第二页。 我仍然需要再次加载这个1MB的文件,然后调用一个js按页码滚动offsetx(无法为每个Apple官方文档复制一个UIWebView)。 这是不可接受的。 当这个文件翻页时,我不能让用户总是等待。 最后我得到了一个解决scheme,以避免重新加载这个大文件。 当我得到第一页的文件10显示。 我将这个可见的视图作为一个图像捕获,但不显示它,当我转到下一页,我显示这个图像的page1,同时,我把UIwebview从页面1到页面2。 像Page2.view.addSubview(webviewfrompage1)。 这将避免重新加载webview并节省时间。 但是,另一个问题来了,Page2.view.addSubview(webviewfrompage1)将导致page2 layoutsubview,这意味着page2将重绘其视图以显示webview内容。 这是一个1MB的文件内容,重绘仍然花费时间,它会卡住翻页animation。 我搜查了很多,但仍然没有解决办法。 我检查的iBooks,它的作品完美。 那大文件是怎么回事? 请让我知道,如果你有任何想法。 或其他解决scheme来处理epub显示。 提前致谢 ————————————————– ——————————————- 回复torazaburo: 是的,你是对的。 我打算使用window.scroll(offsetX,offsetY)来获取下一页的内容。 但这还不够。 我想要像ibooks那样的翻页animation。 所以我使用UIPageViewController。 使用UIPageViewController意味着我必须实现以下两个代表 – (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController {} (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController { […]

UIPageViewController和UIButton混合使用

事情就是这样的:我们的应用程序在开始时需要一系列的教程屏幕,以及屏幕底部的两个button,以便人们注册或login。 (如图所示) 我的问题是:当人们滑动教程图像时,如何将button保留在屏幕上? 我尝试了几种方法: 在PageContentViewController(UIViewController的子类)中,我有一个用于教程图像的UIImageView,以及两个用于button的UIButton。 这样,button也滑动,而不是我想要的。 我使用一个新的ViewController的button,并在我的rootviewController,我添加这个新的viewcontroller作为子视图。 这样,新的viewcontroller就隐藏了它下面的教程图片。 我无法滑动图像。 我也尝试设置新的viewcontroller的alpha值,以便我可以看到它下面的图像,但仍然不能滑动它。 任何更好的想法或示例代码,我可以学习?

背景上的图像pageViewController重叠相反

我有一个pageViewController显示每个索引的背景图像。 它工作得很好,从左到右(向前)滑动,但是当您向后滑动时,背景图像相互重叠。 在实现背景图像之前,每个VC上的用户界面都可以正常工作,反转,所以我知道这是背景图像。 此外,如果我改变page curl而不是在我的storyboard scroll ,它反过来很好,只是不工作的scroll 。 这显然是一个已知的错误( 从UIPageViewController删除视图控制器 ),但是我需要在Swift中的解决scheme。 pageviewController: func pageViewController(pageViewController: UIPageViewController, viewControllerBeforeViewController viewController: UIViewController) -> UIViewController? { guard let currentPageViewController = viewController as? SinglePageViewController, let currentIndex = indexOfForecast(currentPageViewController.forecast!) as? Int where currentIndex != 0 else { return nil } //fixed bug where index was -0 only on scroll return viewControllerAtIndex(currentIndex – […]

使用UIPageViewController和UISegmentedControl进行平滑过渡,就像在Apple Music App中一样

在一个应用程序,目前正在开发即时通讯切换两个UITableViewController与UINavigationBar中的UISegmentedControl。 新的苹果音乐有一个非常整洁的效果,用户之间切换UIViewController的UIPageViewController内。 关联的UISegmentedControl可以顺利地进行调整。 一个基本的故事板设置或代码库应该如何实现这样的事情?