UIView

2011-09-21 1 views
15

पर ग्रेडियेंट मास्क मेरे पास एक UIView है और इसके नीचे का हिस्सा 0 अस्पष्टता तक फीका होना चाहता है।UIView

क्या यह पूरे UIView और इसकी सामग्री को प्रभावित करने के लिए UIView (CALAYer) में किया जा सकता है?

+0

ग्रेडिएंट मास्क के साथ संघर्ष करने वाले अन्य लोगों के लिए, यह 'UIStackView' पर लागू होने पर काम नहीं करेगा। –

उत्तर

31

हाँ, आप कर सकते हैं कि अपने दृश्य के लेयर मास्क के रूप में CAGradientLayer की स्थापना द्वारा:

#import <QuartzCore/QuartzCore.h> 

... 

CAGradientLayer *maskLayer = [CAGradientLayer layer]; 

maskLayer.frame = view.bounds; 
maskLayer.colors = @[(id)[UIColor whiteColor].CGColor, (id)[UIColor clearColor].CGColor]; 
maskLayer.startPoint = CGPointMake(0.5, 0); 
maskLayer.endPoint = CGPointMake(0.5, 1.0); 

view.layer.mask = maskLayer; 

पी.एस. चीजों को काम करने के लिए आपको अपने ऐप में QuartzCore.framework लिंक करने की भी आवश्यकता है।

+0

मुझे पता है कि यह पुराना है, लेकिन सीजीकलर प्राप्त करने और फिर उन्हें पॉइंटर्स पर वापस लाने का क्या सौदा है? 'रंग' संपत्ति का कहना है कि यह यूआईसीओलर्स की एक सरणी है। –

+0

डॉक्स से सार - ** रंग ** - प्रत्येक ढाल स्टॉप के रंग को परिभाषित CGColorRef ऑब्जेक्ट्स की एक सरणी। उन्हें एनएसएआरएआरई में स्टोर करने के लिए हमने उन्हें आईडी पर डाला। सचमुच, मैंने सोचा कि हमें एआरसी का उपयोग करते समय ब्रिज कास्ट चाहिए, लेकिन कोड ठीक है क्योंकि यह अब – Vladimir

+0

धन्यवाद है, यह काम करता है !! – Deeper