मैं एक UIScrollView जो या तो अभिविन्यास में इस्तेमाल किया जा सकता और subviews के एक नंबर शामिल साथ काम कर रहा हूँ: मैं पूरी पुस्तक को देखने के एक स्क्रीन शॉट पर कब्जा करने की कोशिश कर रहा हूँकैप्चर 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);
यह कैप्चर ठीक है और इसमें सभी सबव्यू शामिल हैं। समस्या यह है कि एक बार जब मैंने स्क्रीन शॉट बनाया है, तो मेरा स्क्रोल व्यू अप्रतिबंधित हो जाता है, इसलिए मैं अब स्क्रॉल नहीं कर सकता (या पोर्ट्रेट मोड में पैन किनारे पर)। अगर मैं डिवाइस को घुमाता हूं, तो समस्या स्वयं को सुधारने लगती है और मैं सामान्य रूप से स्क्रॉल और पैन कर सकता हूं। मुझे यकीन है कि मुझे स्क्रीन स्क्रॉल लेने के बाद सामान्य रूप से सीधे काम करने के लिए मेरे स्क्रॉल व्यू को प्राप्त करने के लिए कुछ बहुत आसान याद आ रही है। किसी भी सुझाव की बहुत सराहना की!
मुझे यह प्रासंगिक होना चाहिए, यह एक आईपैड ऐप है, मुझे जोड़ना चाहिए। – beev