2011-03-09 19 views
12

मेरे पास एक एनएसटीबल व्यू है जो पुनः लोड हो जाता है। जबकि नया डेटा लोड हो रहा है, मैं स्पिनर के साथ इसके उप-दृश्य को जोड़ना चाहता हूं। मैं दृश्य को अर्ध-पारदर्शी होने के बारे में देखना चाहता हूं और धुंधला होने के लिए इसके नीचे दृश्य प्रकट करना चाहता हूं। मैं ऐसा कैसे कर पाऊंगा?दृश्य के ऊपर धुंधला दृश्य कैसे जोड़ें?

उत्तर

18

सबसे आसान समाधान-काफी अधिक तो -bitmapImageRepEtc: एक है, और रैस्टराइज़ेशन पैमाने पर विधि-है की तुलना में मैक ओएस के लिए और अधिक लागू की तुलना में कोर एनीमेशन बैकिंग लेयर का उपयोग करने के लिए अपने ओवरले व्यू को सेट करने के लिए, उस परत को कोर इमेज ब्लर फ़िल्टर दें। यह एक मैक ओएस पर, डॉक मेनू से मेन्यू बार में उपयोग की जाने वाली तकनीक है। इंटरफ़ेस बिल्डर यह तुच्छता से स्थापित करने के लिए आसान बना देता है, लेकिन आप के रूप में अच्छी तरह से कोड में यह कर सकते हैं, इस तरह:

CALayer *backgroundLayer = [CALayer layer]; 
[backgroundView setLayer:backgroundLayer]; 
[backgroundView setWantsLayer:YES]; 

CIFilter *blurFilter = [CIFilter filterWithName:@"CIGaussianBlur"]; 
[blurFilter setDefaults]; 

[backgroundView layer].backgroundFilters = [NSArray arrayWithObject:blurFilter]; 
+3

ऐसा लगता है कि यह केवल तभी काम करता है जब दृश्य पूरी तरह से अन्य दृश्यों को कवर करता है। जब यह केवल उन्हें आंशिक रूप से कवर करता है, तो दृश्य के नीचे का पूरा क्षेत्र धुंधला हो जाता है। – adib

+0

इसे वापस मृतकों से लाने के लिए खेद है - 'सेटलेयर' किस फ्रेमवर्क पर निर्भर करता है? – capikaw

+3

कोर एनीमेशन: क्वार्ट्जकोर.फ्रेमवर्क –

-3

क्या आपने व्यू के लिए अल्फा विशेषता बदलने की कोशिश की है (पारदर्शिता के लिए)? इसके अलावा यहां एक दृश्य को धुंधला पर एक लिंक दिया गया है: Blur Effect for UIView

+1

मैं नहीं बल्कि धुँधली से यह pixelated कहेंगे। – Konrad77

2

बुनियादी तकनीक आपके विचार की एक छवि स्नैप करने के लिए, NSView की ‑bitmapImageRepForCachingDisplayInRect: विधि की तरह कुछ का उपयोग कर किया जाएगा, प्रसंस्करण कि छवि बनाने के लिए इसे धुंधला (मुख्य छवि है आपके यहां मित्र) और फिर धुंधला चित्र युक्त NSImageView के साथ अपना दृश्य ओवरले करें।

बेशक यह fakery, है, लेकिन है कि क्या खेल के प्रदर्शन के बारे में :-) है

3

आप guthub पर RMBlurredView की जांच करनी चाहिए: https://github.com/raffael/RMBlurredView

यह एक आसान के उपवर्ग उपयोग करने के लिए है NSView जो आपके लिए यह सब करता है। अपने मूल दृश्य पर setWantsLayer:YES सेट करना सुनिश्चित करें!

जानकारी के लिए, बाहर की जाँच Cocoanetics लेख: http://www.cocoanetics.com/2013/10/blurring-views-on-mac/

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