2013-06-22 8 views
8

मैं एक UIViewController जहाँ मैं साथCAGradientLayer वापस करने के लिए

CAGradientLayer *gradient = [CAGradientLayer layer]; 
    ... 
    gradient.frame = frame; 
    self.backGradient = gradient; 
    [self.view.layer insertSublayer:gradient atIndex:0]; 

यह ठीक काम करता है एक पृष्ठभूमि ढाल बनाने भेजने के लिए, बाद में मैं वापस करने के लिए मेरे विचार नियंत्रक के subview _selectionFrame भेजना है:
(मैं अक्सर करने की जरूरत है _selectionFrame भेज एनीमेशन और ड्राइंग उद्देश्य)

self के लिए, सामने से लेने और करने के लिए ViewController है:

[self.view sendSubviewToBack:_selectionFrame]; 

हालांकि यह gradient के पीछे _selectionFrame भेजता है। मैं इसे ढाल से ऊपर चाहता हूं लेकिन हर दूसरे सबव्यू के नीचे। समस्या यह है कि ढाल एक दृश्य नहीं है, इसलिए मैं ढाल के लिए कार्यों का उपयोग नहीं कर सकता।
मैं [self.view sendSubviewToBack:gradient];

पर कॉल करना चाहता हूं लेकिन यह काम नहीं करता है।

उत्तर

13

एक ऐसा दृश्य बनाएं जिसमें केवल ढाल

+0

काम करता है और सरल है। – AlexWien

3

सबसे सरल समाधान ग्रेडियेंट परत को self.view.layer के उपनगर के रूप में सम्मिलित नहीं करना है। इसके बजाए, इसे self.view.layer होना चाहिए। एक UIView सबक्लास में एक क्लास विधि layerClass है जो आपको यह कहने देती है कि इसकी परत किस श्रेणी में होनी चाहिए।

या, यह self.view के कुछ अन्य subview की परत हो सकती है, फिर आसानी से एक ही कक्षा विधि layerClass का उपयोग करके की व्यवस्था की।

अन्यथा, self.view के उपनगरों को ऑर्डर करने के लिए, आपको कमांड का उपयोग करना होगा, आदेशों को नहीं देखना होगा। इसमें इसके सबव्यूव शामिल हैं। दूसरे शब्दों में, यदि vself.view का एक सबव्यूव्यू है, तो v.layerself.view.layer का एक उपन्यास है और आप इसे उपन्यासकर्ता सरणी को पुन: व्यवस्थित करके अपने उपन्यासों में ऑर्डर कर सकते हैं।

+0

self.view.layer = self.backGradient; self.view.layer को काम नहीं करता है केवल – AlexWien

+0

पढ़ा गया है मैंने जो कहा मैंने नहीं पढ़ा। आपको एक कस्टम UIView का उपयोग करना होगा और 'layerClass' को लागू करना होगा ताकि UIView एक कैग्रेडेंट लाइयर के साथ "परत" हो। – matt

+0

धन्यवाद दिलचस्प है, लेकिन आवश्यक से अधिक जटिल (मेरे लिए) – AlexWien

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