Я работаю с UIScrollView, который может использоваться в любой ориентации и содержит несколько подпредставлений:
// in viewDidLoad
mainScrollView = (UIScrollView *)self.view;
mainScrollView.contentSize = CGSizeMake(1024, 1432);
I ' m пытается сделать снимок экрана всего режима прокрутки со всеми его частями, включая то, что в данный момент не отображается на экране. Следующее захватывает только то, что видно на экране во время захвата:
// make screenshot
UIGraphicsBeginImageContext(mainScrollView.bounds.size);
[mainScrollView.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *screenImg = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
// save screenshot in docs dir
NSData *pngData = UIImagePNGRepresentation(screenImg);
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDir = [paths objectAtIndex:0];
[pngData writeToFile:[documentsDir stringByAppendingPathComponent:@"screen1.png"]
options:NSDataWritingAtomic error:nil];
Добавление следующего перед созданием снимка экрана было единственным способом, который я мог разрешить, что позволило мне захватить весь вид прокрутки:
// capture off-screen content
mainScrollView.frame = CGRectMake(0, 0, 1024, 1432);
Этот снимок прекрасен и включает в себя все подвиды. Проблема в том, что после того, как я сделал снимок экрана, мое представление прокрутки перестает отвечать, поэтому я больше не могу прокручивать (или панорамировать в сторону, если в портретном режиме). Если я поверну устройство, проблема, похоже, исчезнет сама собой, и я могу нормально прокручивать и панорамировать.
// make screenshot
UIGraphicsBeginImageContext(mainScrollView.bounds.size);
[mainScrollView.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *screenImg = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
// save screenshot in docs dir
NSData *pngData = UIImagePNGRepresentation(screenImg);
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDir = [paths objectAtIndex:0];
[pngData writeToFile:[documentsDir stringByAppendingPathComponent:@"screen1.png"]
options:NSDataWritingAtomic error:nil];
Добавление следующего перед созданием снимка экрана было единственным способом, который позволил мне захватить весь вид с прокруткой:
// capture off-screen content
mainScrollView.frame = CGRectMake(0, 0, 1024, 1432);
Этот снимок хорош и включает все подвиды. Проблема в том, что после того, как я сделал снимок экрана, мой вид прокрутки перестает отвечать, поэтому я больше не могу прокручивать (или панорамировать в сторону, если в портретном режиме). Если я поверну устройство, проблема, похоже, исчезнет сама собой, и я могу нормально прокручивать и панорамировать.
// make screenshot
UIGraphicsBeginImageContext(mainScrollView.bounds.size);
[mainScrollView.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *screenImg = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
// save screenshot in docs dir
NSData *pngData = UIImagePNGRepresentation(screenImg);
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDir = [paths objectAtIndex:0];
[pngData writeToFile:[documentsDir stringByAppendingPathComponent:@"screen1.png"]
options:NSDataWritingAtomic error:nil];
Добавление следующего перед созданием снимка экрана было единственным способом, который позволил мне захватить весь вид с прокруткой:
// capture off-screen content
mainScrollView.frame = CGRectMake(0, 0, 1024, 1432);
Этот снимок хорош и включает все подвиды. Проблема в том, что после того, как я сделал снимок экрана, мой вид прокрутки перестает отвечать, поэтому я больше не могу прокручивать (или панорамировать в сторону, если в портретном режиме). Если я поверну устройство, проблема, похоже, исчезнет сама собой, и я могу нормально прокручивать и панорамировать. Я уверен, что мне не хватает чего-то очень простого, что необходимо для нормальной работы режима прокрутки сразу после того, как сделан снимок экрана. Любые предложения очень ценны!