द्वारा बनाई गई छाया छायाएं मैं एक होलो CGPath के बाहरी किनारे के चारों ओर एक छाया जोड़ना चाहता हूं (उन दो शब्द महत्वपूर्ण हैं: बाहर + खोखले :))।CALayer.shadow
ऐप्पल की छाया क्रियान्वयन केवल आपको "भरी" छाया करने की अनुमति देता है।
तो ... छाया के अंदर के हिस्से को कैसे बंद करना है? अगर यह रेंडर कॉल था, तो मैं इसे क्लिप करने के लिए CGContextSetClip * विधियों को कॉल करने के लिए कहूंगा ... लेकिन मैं नहीं देख सकता कि आप इसे कैसे प्राप्त करेंगे, क्योंकि यह न तो एक रेंडर कॉल है, न ही एक कैलियर स्वयं ।
(एप्पल का एक दुर्भाग्यपूर्ण परिणाम यह जादू चर का एक सेट के रूप में "छिपा", मुझे लगता है?)
एनबी: इस आईओएस है केवल - IIRC मैक पर आप छाया बनाने के लिए इस्तेमाल फिल्टर करने के लिए सीधी पहुँच है , ताकि आप हाथ से अपनी खुद की (मनमानी) छाया बना सकें।
अद्यतन:
मैं बाहर काम किया छाया का ही भीतरी भाग को दिखाने के लिए क्लिप के लिए कैसे: "layer.mask" सेट, एक नई परत वर्तमान परत का एक क्लोन है कि होने के लिए (यानी एक ही रास्ता), और पूर्ण अल्फा के साथ पथ fillcolor सेट करें।
यह मैं जो कोशिश कर रहा हूं उसके विपरीत यह है, इसलिए यदि मैं मास्क परत को अल्फा फ्लिप करने के लिए एक रास्ता प्राप्त कर सकता हूं (0 हो जाता है, 1 हो जाता है 0), तो मैं वहां रहूंगा ...
मैंने कोशिश की, लेकिन मेरी परत से कुछ भी नहीं हुआ, और आपने 'छायाबॉर्डरविड्थ' को परिभाषित नहीं किया। इसका क्या मतलब है? –
मैंने कोड बदल दिया है। मुझे नहीं पता कि यह अभी भी काम करेगा, शायद होगा। यदि यह आपके लिए काम नहीं करता है, तो आपके पास ऐसा करने के लिए बहुत कुछ डिबगिंग है: आपकी क्लोनशिपलेयर विधि, आपके सीजीपाथ में आपका घुमावदार नियम, आपका मूल CGPath स्वयं, आदि ... यह आपके स्रोत कोड और आपके छवि डेटा पर बहुत निर्भर है - मैं आपके लिए इसे डीबग नहीं कर सकता। – Adam
धन्यवाद, मैं इसे आजमाउंगा :) –