我正在使用Core Animation构建一个场景,其外观类似于旧Apple TV上的屏幕保护程序。连续的图像流(每个CALayer
)从下到上垂直穿过。为实现此目的,在图层的动画移出视图后结束后,它会重新定位到底部,分配新图像并重新生成。这发生在animationDidStop
委托方法中。但是,我注意到如果我在iPad上运行应用程序时截取屏幕截图,则图层永远不会重新定位到底部,并且不会再次显示。我已经解决了这个问题,而且我确信截屏会导致它。这让我觉得拍摄截图对动画时机有影响。所以......
答案 0 :(得分:1)
您可以随时尝试根据视图内容以编程方式捕获屏幕截图,然后将其另存为屏幕截图。我不知道你的对象,但这是我以前做过的。截图的所有内容都在 CaptureView 。
中CGRect screenRect = [[UIScreen mainScreen] bounds];
UIGraphicsBeginImageContext(CaptureView.frame.size);
CGContextRef ctx = UIGraphicsGetCurrentContext();
[[UIColor clearColor] set];
CGContextFillRect(ctx, screenRect);
[CaptureView.layer renderInContext:ctx];
UIImage *screenImage = UIGraphicsGetImageFromCurrentImageContext();
UIImageWriteToSavedPhotosAlbum(screenImage, nil, nil, nil);
UIGraphicsEndImageContext();
你的动画是静止的UIImageView
吗?如果您要检测的图像视图离开屏幕,只需使用frame.origin.y
与0比较。
答案 1 :(得分:0)
您可以使用presentationLayer在动画制作动画时捕捉屏幕截图。
即[CaptureView.layer presentationLayer]
您还可以在CALayer
的presentationLayer中设置动画时检测触摸。