从UIViewController创建一个缩略图,而不显示它

时间:2012-11-28 13:37:57

标签: ios ipad

我正在制作一个Ipad应用程序,它包含大约100个代表项目的不同视图。为了能够在项目之间快速滚动,我正在尝试创建缩略图视图。 问题是我必须在屏幕上显示UIViewController本身之前制作缩略图。

目前我正在使用此代码:

ProjectViewController2 * page2 = [[ProjectViewController2 alloc]initWithNibName:@"ProjectViewController2" bundle:nil displayRightArrow:FALSE media:nil];
[page2 setMyMedia:media];
[page2 configurePage];
CGSize size = [page2.view bounds].size;
UIGraphicsBeginImageContext(size);
[[page2.view layer] renderInContext:UIGraphicsGetCurrentContext()];
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
NSString * filePath= [NSHomeDirectory() stringByAppendingFormat:@"/Documents/project/%@", [media fileName]];
[UIImageJPEGRepresentation(newImage, 1.0) writeToFile:filePath atomically:TRUE];
UIGraphicsEndImageContext();

这样可行,我从UIViewController获取截图,但没有主要图像。这些图像未在NIB文件中设置,而是在configurePage函数中设置。在NIB文件中设置的背景颜色和菜单栏在缩略图中可见。

我怀疑我没有看到图像,因为UIViewController没有显示在屏幕上,因此没有调用某种绘制功能。

真的很感激任何帮助!!!

斯泰恩

1 个答案:

答案 0 :(得分:0)

何时调用configurePage方法?在ViewDidLoad上?当ProjectViewController使用initWithNibName初始化时,因此可能是为什么nib元素正在显示,你可以获得它们的图像表示。我的猜测是编写一个自定义初始化程序,它将项目映像作为初始化序列的一部分,或者可能测试将configurePage代码移动到其他viewController方法之一,例如viewWillAppear。只是一个想法。