我有UICollectionView
。我想为每个对象生成两个快照。
示例代码:
for (int index = 0; index < 2; index++) {
UIView *dummyView = [[UIView alloc] init];
dummyView.frame = some frame....,
dummyView.backgroundColor = [UIColor yellowColor];
UIGraphicsBeginImageContextWithOptions(dummyView.bounds.size, NO, [UIScreen mainScreen].scale);
[dummyView.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *outputImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
NSData *imgData= UIImageJPEGRepresentation(outputImage, 1.00f);
//Write file.
}
我已经在cellForItemAtIndexPath中编写了代码。如果路径中没有图像,则会自动创建。因此,当我第一次启动应用程序时,UI没有响应,因为正在创建许多快照。这减缓了用户交互。有没有解决这个问题?
答案 0 :(得分:0)
使用drawViewHierarchyInRect
代替drawInContext
,因为它快得多
请参阅此处的iOS 7示例:https://coderwall.com/p/56wcfq/fast-snapshot-any-views-on-ios-7