2013-10-16 8 views
38

मैं जब एक UICollectionView का उपयोग कर दृश्यजब मैं हां में

view.layer.shouldRasterize = YES; 

मैं प्रदर्शन में एक बड़ा अंतर देखा की परत संपत्ति की स्थापना और तैयारी द्वारा कुछ lagyness बग के लिए देखा है layer.shouldRasterize स्थापित करना चाहिए कोशिकाओं और प्रसंस्करण की स्थापना।

सुनिश्चित नहीं है कि प्रभाव क्या हैं।

स्पष्टीकरण प्राप्त करने के लिए बहुत अच्छा होगा। धन्यवाद!

उत्तर

41

डब्ल्यूडब्ल्यूडीसी 2012 Polishing Your Interface Rotations वीडियो (भुगतान डेवलपर सदस्यता की आवश्यकता) में, वे rasterizing परतों के फायदे और प्रभाव के बारे में बात करते हैं। यह वीडियो एक अलग विषय पर है (हालांकि, एक दिलचस्प), लेकिन वे स्नैपशॉटिंग बनाम रास्टरराइजिंग के पेशेवरों और विपक्ष के बारे में बात करते हैं (वीडियो में 8 मिनट से शुरू होने से वे UIView पदानुक्रम के बीच संबंधों के बारे में कुछ पृष्ठभूमि देते हैं, प्रेजेंटेशन पेड़, और रेंडर पेड़, और फिर वीडियो में 6 मिनट के रास्टरराइजेशन की चर्चा में गोता लगाएँ)।

यदि आपके पास एक जटिल दृश्य है (यानी आप फिर से प्रस्तुत करने के लिए अपेक्षाकृत महंगे हैं) तो नीचे की रेखा, लेकिन जिसके लिए एनिमेटेड व्यू स्वयं बदल नहीं रहा है, परत को रास्टराइजिंग प्रदर्शन को बेहतर ढंग से प्रस्तुत नहीं कर सकता हर समय परत। लेकिन यह स्मृति की लागत पर (स्मृति में एक rasterized छवि को बचाने) करता है।

लेकिन, यदि आप परत के भीतर एक परिवर्तन को एनिमेट करते हैं, तो shouldRasterize प्रदर्शन को प्रतिकूल रूप से प्रभावित कर सकता है (क्योंकि यह एनीमेशन के प्रत्येक फ्रेम के लिए परत को फिर से रास्टराइज करने जा रहा है)।

आम तौर पर, यदि परतों का एक जटिल सेट एनिमेट कर रहा है, तो स्वयं बदल नहीं रहे हैं, तो आप shouldRasterize से YES पर सेट कर सकते हैं, एनीमेशन करें और फिर shouldRasterize बंद करें।

संबंधित मुद्दे