ここの指示に従って、アニメーション中にスクリーンショットをキャプチャしました(ビデオとしてキャプチャするために、アニメーションラベルで UIView を記録しようとしています)
これが私のViewController(getframe)でのスクリーンキャプチャのコードです
-(UIImage*) getCurrentFrame {
UIGraphicsBeginImageContext(self.view.bounds.size);
CGContextRef mycontext = UIGraphicsGetCurrentContext();
[[[self.view layer] presentationLayer] renderInContext:mycontext];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
}
スクリーンショットのビデオを作成しようとすると、開始フレームのみが繰り返し表示されます。私のスレッド (AVAssetwriter の例を使用) が後続のスクリーンショットを取得すると、スクリーングラブは何も動きません。スクリーングラブは AVAssetWriterInput usingblock の while ループで呼び出されます。
私のアニメーションは、ラベルの単純なコア アニメーションです - 下にスクロールする例
mTextLabel.frame = CGRectMake(mTextLabel.frame.origin.x,
-100,
mTextLabel.frame.size.width,
mTextLabel.frame.size.height);
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration: delay];
[UIView setAnimationTransition:UIViewAnimationTransitionNone
forView:mTextLabel cache:YES];
mTextLabel.frame = CGRectMake(mTextLabel.frame.origin.x,
240,
mTextLabel.frame.size.width,
mTextLabel.frame.size.height);
[UIView commitAnimations];
古い学校のアニメーションをブロックアニメーションのanimatewithDurationに置き換えてみましたが、同じ結果が得られました
助言がありますか?iOS 6 と最新の xcode を使用 (Quartzcore を正しくインポート)
Apple 開発センターは、何かがキャプチャされない可能性があると述べました。
タイマーを使用してアニメーションをステージングし、画面を断続的に取得する別のオプションはありますか (アニメーションをハンドコーディングする必要があります)。