का कारण बनता है मैं आपको अपनी समस्या के बारे में बताता हूं और मैंने इसे हल करने का प्रयास कैसे किया। मेरे पास एक UIScrollView है जो उप-दृश्यों को बाएं से दाएं स्क्रॉल के रूप में लोड करता है। प्रत्येक सबव्यू में 400x200 के आसपास 10-20 छवियां होती हैं। जब मैं देखने के लिए दृश्य से स्क्रॉल करता हूं, तो मुझे काफी अंतराल का अनुभव होता है।UIImageView की छवि प्रॉपर्टी सेट करना प्रमुख अंतराल
जांच के बाद, मैंने पाया कि सभी विचारों को उतारने और फिर से प्रयास करने के बाद, अंतराल समाप्त हो गया था। मुझे लगा कि छवियों का सिंक्रोनस कैशिंग अंतराल का कारण था। इसलिए मैंने UIImageView का उप-वर्ग बनाया जिसने छवियों को असीमित रूप से लोड किया। लोडिंग कोड निम्न जैसा दिखता है (self.dispatchQueue
एक धारावाहिक प्रेषण कतार देता है)।
- (void)loadImageNamed:(NSString *)name {
dispatch_async(self.dispatchQueue, ^{
UIImage *image = [UIImage imageNamed:name];
dispatch_sync(dispatch_get_main_queue(), ^{
self.image = image;
});
});
}
हालांकि, इस उपवर्ग के लिए मेरे UIImageViews के सभी परिवर्तित करने के बाद, मैं अभी भी अंतराल अनुभव (मुझे यकीन है कि अगर यह कम या नहीं किया गया था नहीं कर रहा हूँ)। मैंने समस्या का कारण self.image = image;
पर उबाला। यह इतना अंतराल क्यों है (लेकिन केवल पहले लोड पर)?
कृपया मेरी मदद करें। = (
ओह ... उस छोटी सी बग के बारे में खेद है। – fumoboy007
यह बहुत उपयोगी था। इस प्रश्न पर आने वाले लोगों के लिए सिर्फ UIView से UIImage बनाने की आवश्यकता है, मुझे कई उत्तरों के माध्यम से पाई जाने के बाद यह समाधान मिला: 'UIGraphicsBeginImageContext (processing.bounds.size); 'CGContextRef ctx = UIGraphicsGetCurrentContext(); '[processing.layer renderInContext: ctx]; 'UIImage * finalImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); ' –
धन्यवाद! .... –