我的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;
}