我用它可以在任一方向使用,幷包含許多子視圖的一個UIScrollView工作:捕獲的UIScrollView關閉屏幕內容
// in viewDidLoad
mainScrollView = (UIScrollView *)self.view;
mainScrollView.contentSize = CGSizeMake(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);
這個捕獲很好,包括所有子視圖。問題是,一旦我製作了屏幕截圖,我的滾動視圖變得無法響應,因此我無法再滾動(或在縱向模式下橫向移動)。如果我旋轉設備,問題似乎自行解決,我可以正常滾動和平移。 我敢肯定,我錯過了一些非常簡單的事情,這是讓屏幕截圖拍攝後我的滾動視圖正常工作所必需的。 任何建議非常感謝!
我應該添加,以防萬一它是相關的,這是一個iPad應用程序。 – beev 2011-04-10 11:15:27