मेरे पास UISmrollViews के साथ UISmrollView और ऑब्जेक्ट्स की संख्या (UIView रचनाएं) हैं। UIImageViews में से कुछ के पास राउंड सीमा है (मैं इसके लिए myImageView.layer.masksToBounds = YES;
का उपयोग करता हूं)। अन्य में आयताकार सीमाएं और उनमें छवि का हिस्सा है (मैं इस के लिए इंटरफेस बिल्डर में Clip subviews
संपत्ति का उपयोग करता हूं)।क्लिपटॉबाउंड्स और मास्क टॉबाउंड प्रदर्शन समस्या
मुद्दा मैंने पाया कि स्क्रॉल करते हुए कि क्लिप गुण जोरदार प्रदर्शन को प्रभावित कर रहा है:
आइपॉड टच (4 पीढ़ी) की रूपरेखा के परिणामों के लिए:
-
सक्षम क्लिप गुण (दोनों या एक के साथ
- उन्हें) मैं चारों ओर 30 एफपीएस है स्क्रॉल विकलांग क्लिप गुण मैं सभी 60 एफपीएस के साथ
- स्क्रॉल करते समय
मैं वास्तव में, जबकि कुछ छवियों को गोल सीमाओं और दूसरे को आयताकार सीमाओं (छवि का हिस्सा दिखाने के लिए) पर क्लिप करने की आवश्यकता है। तो, मेरा प्रश्न यह है कि प्रदर्शन में सुधार करने के लिए किन तरीकों से हैं? ऐसा करने के लिए निम्न स्तर के तरीके हो सकते हैं (drawRect:
या कुछ), या हो सकता है कि यह अल्फा मास्किंग के आसपास खेलने के लिए उपयोगी हो या मैं कुछ गलत करूँ?
#import <QuartzCore/QuartzCore.h>
// ...
view.layer.shouldRasterize = YES;
यह rastersize देगा:
अच्छी सलाह! लेकिन अब यह वास्तव में मदद करता है जब मैं इस संपत्ति को पूरे दृश्य में लागू करता हूं (गोलाकार छवि दृश्य और अंदर टेक्स्ट लेबल के साथ)। इस मामले में पाठ इतना बदसूरत हो जाता है .. अगर मैं इसे केवल गोल छवि दृश्य पर लागू करता हूं तो इसे लगभग कोई प्रभाव नहीं पड़ता है। – Lloyd18
आह, क्षमा करें। रेटिना समर्थन के लिए, 'view.layer.rasterizationScale = [[UIScreen मुख्यस्क्रीन] स्केल] सेट करें। यह सब कुछ कुरकुरा करना चाहिए। मैंने अपना जवाब अपडेट कर लिया है। –
और याद रखें कि आपकी मेमोरी उपयोग की जांच करें। जब आप रास्टरराइजेशन का उपयोग करते हैं तो मेमोरी उपयोग अंतर देखने के लिए "गतिविधि मॉनिटर" उपकरण का उपयोग करें। अतिरिक्त वीडियो मेमोरी शायद आवंटन में दिखाई नहीं देगी। यदि वृद्धि बहुत बड़ी है तो आपको विचारों को आजमाने और रीसायकल करना चाहिए, ताकि किसी भी समय बहुत सारे उदाहरण न हों। –