将图像预加载到嵌入UIPageViewController

时间:2019-01-22 15:07:21

标签: objective-c xcode uiimageview uipageviewcontroller

我的Objective-C Xcode项目有问题。该项目是一个包含超过1000张图像的图像幻灯片应用程序。我只会同时在单独的“ UIViewController”中加载三个图像。

想法

我有三个连接到“ UIPageViewController”的“ UIViewController”。默认情况下,“ UIPageViewController”加载中间名为“绿色”的“ UIViewController”,并显示“ ImageArray”索引中的当前图像。

现在,我将在“ UIViewController”(名称:蓝色)中预加载下一个图像,并在“ UIViewController”(名称:红色)中预加载上一个图像。

如果用户向右滑动(至“ UIViewController:蓝色”)或向左滑动(至“ UIViewController:红色”),图像仍会预加载并可见。

如果显示的是新的“ ViewController”,则应从头开始执行预加载下载映像过程。

设置

一个“ UIPageViewController”(名称:FullScreenManager)和三个“ UIViewController”(名称:红色索引:0,绿色索引:1,蓝色索引:2)

UIViewControllers --------- --------- -------- | RED | | GREEN | | BLUE | | PRELOAD | | CURRENT | | PRELOAD| --------- --------- --------

代码

我使用follow void块,但是我不知道如何在其他两个“ UIViewControllers”中预加载两个图像(上一个和下一个)

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

    if (completed) {

        // self.currentIndex = self.nextIndex;
        NSLog(@"CurrentIndex:  %ld", (long)self.nextIndex);

        switch (self.nextIndex) {
            case 0: {
                NSLog(@"<< BLUE -- RED -- GREEN >>");

                // Preload and show previous image in BLUE UIViewController;
                /** ??? **/

                // Preload and show next image in GREEN UIViewController;
                /** ??? **/
                break;
            }
            case 1: {
                NSLog(@"<< RED -- GREEN -- BLUE >>");

                // Preload and show previous image in RED UIViewController;
                /** ??? **/

                // Preload and show next image in BLUE UIViewController;
                /** ??? **/
                break;
            }
            case 2: {
                NSLog(@"<< GREEN -- BLUE -- RED >>");

                // Preload and show previous image in GREEN UIViewController;
                /** ??? **/

                // Preload and show next image in RED UIViewController;
                /** ??? **/
                break;
            }
        }
    }
    self.nextIndex = 0;
}

0 个答案:

没有答案