4

プロジェクトを表す約 100 の異なるビューで構成される Ipad アプリケーションを作成しています。プロジェクト間をすばやくスクロールできるようにするために、サムネイル ビューを作成しようとしています。問題は、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 が画面に表示されていないため、何らかの描画関数が呼び出されていないため、画像が表示されないと思われます。

どんな助けでも本当に感謝しています!!!

ステイン

4

1 に答える 1

0

configurePage メソッドはいつ呼び出されますか? ViewDidLoad で? ProjectViewController が initWithNibName で初期化されるため、おそらく nib 要素が表示され、それらの画像表現を取得できる理由です。私の推測では、初期化シーケンスの一部としてプロジェクト イメージを持つカスタム initiailiser を作成するか、configurePage コードを viewWillAppear などの他の viewController メソッドの 1 つに移動してテストします。ちょっとした考え。

于 2012-11-28T13:59:22.503 に答える