假设有这种方法来创建UIView快照
+ (UIImage *)screenshotWithView:(UIView *)view {
UIGraphicsBeginImageContextWithOptions(view.bounds.size, view.opaque, 0.0f);
if( [view respondsToSelector:@selector(drawViewHierarchyInRect:afterScreenUpdates:)] ) { // LP: iOS 7 only
[view drawViewHierarchyInRect:view.bounds
afterScreenUpdates:[view superview]?NO:YES];
} else {
[view.layer renderInContext:UIGraphicsGetCurrentContext()];
}
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
}
在一段时间内执行此方法时,请说出
之类的内容runTimer = [NSTimer scheduledTimerWithTimeInterval: 1.0f/30
target:self
selector:@selector(sendScreen)
userInfo:nil
repeats:repeat];
应用变得越来越慢。用户界面不会冻结,快照也会被删除,但性能会急剧下降。
这正是苹果公司在此不建议使用iOS7的新UI方法:
使用经典
时 [view.layer renderInContext:UIGraphicsGetCurrentContext()];
一切都按预期工作,但当然我们已经知道了。
尝试
时没有成功- (UIView *)snapshotViewAfterScreenUpdates:(BOOL)afterUpdates