2012-07-04 14 views
13

मेरी स्क्रॉल में कुछ विचार हैं जो cornerRadius = 10.0 और masksToBounds = YES है।मास्क टॉबाउंड्स और कोनेराइडियस के बीच संबंध क्या है?

यह मेरे स्क्रॉल व्यू को स्क्रॉल करने के लिए प्रदर्शन समस्या का कारण बनता है। हालांकि मैंने प्रत्येक दृश्य के shouldRasterize को YES सेट करने का प्रयास किया है, लेकिन समस्या हल नहीं की गई है।

हालांकि, मुझे इस मुद्दे का समाधान पता है। यही है masksToBoundNO सेट है। (masksToBound's डिफ़ॉल्ट मान नहीं है) हालांकि masksToBoundNO है, मेरे विचारों के कोनों में अभी भी वक्र है और प्रदर्शन समस्या भी हल हो गई है।

मैं cornerRadius और masksToBounds के बीच संबंध के बारे में जानना चाहता हूं। मैं इस सेटिंग के साथ अप्रत्याशित मुद्दों से डरता हूं।

धन्यवाद।

उत्तर

23

cornerRadius प्रदान करने के बाद जो रिसीवर की पृष्ठभूमि के गोलाकार कोनों को आकर्षित करने के लिए उपयोग किए जाने वाले त्रिज्या को निर्दिष्ट करता है।

अब यह masksToBounds पर निर्भर करता है जो यह निर्धारित करता है कि उपन्यासकर्ता रिसीवर की सीमाओं पर फंस गए हैं या नहीं। तो यदि यह YES पर सेट है, तो परत सीमाओं से मेल खाने वाला एक अंतर्निहित मुखौटा परत पर लागू होता है, जिसमें cornerRadius संपत्ति के प्रभाव शामिल हैं। यदि यह YES पर सेट है और मास्क प्रॉपर्टी निर्दिष्ट है, तो वास्तविक मास्क मान प्राप्त करने के लिए दो मास्क गुणा किए जाते हैं।

उदाहरण के लिए:

आप छवि सामग्री के साथ एक CALayer पर कि सेट करते हैं, तब भी चित्र कोने की त्रिज्या सीमा के बाहर तैयार किया जाएगा। आप इसे sublayer.masksToBounds से YES पर सेट करके हल कर सकते हैं; लेकिन यदि आप ऐसा करते हैं, तो छाया दिखाई नहीं देगी क्योंकि उन्हें मुखौटा बनाया जाएगा!

-2

कोई विशिष्ट संबंध जहाज नहीं है .. असल में जब आप कॉर्नर रेडियस को कॉल करते हैं तो यह दृश्य को फसल करेगा कि आपने किस त्रिज्या को पारित किया है और मास्कटॉबाउंड: हां उस भाग को पारदर्शी बनाएं जिसे आपने फसल किया है, यह दिखाई देगा ...

+3

स्पष्ट और शायद गलत भी नहीं है। –

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