2016-03-09 10 views
11

में स्क्रीन के ऊपर और नीचे धुंधला मुखौटा जोड़ें मुझे इस तरह की स्क्रीन के शीर्ष और बटम पर मुखौटा जोड़ने की आवश्यकता है।उद्देश्य-सी

मैं इसे कैसे प्राप्त कर सकता हूं? enter image description here

+1

मुझे लगता है कि आपको यह लिंक देखना चाहिए: [UIVisualEffectView] (http://stackoverflow.com/questions/24067719/how-to-use-uivisualeffectview) –

उत्तर

1

मैं इस प्रभाव को प्राप्त करने के लिए एक तरीका सोच सकता हूं। लेकिन आपको जो चाहिए वह धुंधला मुखौटा नहीं है, आपको क्लिपिंग मास्क का उपयोग करने की आवश्यकता है।

1- एक दृश्य के साथ एक मोडल व्यू कंट्रोलर प्रस्तुत करें जिसमें पीछे में UIVisualEffectView है, और ऊपर और नीचे से 40px (या फिर भी आप चाहते हैं) ऑफसेट के सामने एक स्क्रॉलव्यू/टेबलव्यू/संग्रह दृश्य शामिल है। 2- पुस्तक को देखने के लिए एक मुखौटा कार्य के अनुरूप एक काले और सफेद छवि का उपयोग करें, तो आपको निम्न कोड का उपयोग कर मुखौटा जोड़ सकते हैं: वैकल्पिक रूप से

var maskImage = UIImage(name: "yourMask") 
var maskLayer = CALayer() 
maskLayer.frame = scrollView.bounds() 
maskLayer.contents = maskImage.CGImage 
scrollview.layer.mask = maskLayer 

3-, आप भी प्राप्त करने के लिए उपयोग कर सकते हैं CAGradientLayer एक ही प्रभाव (यह स्केलिंग के साथ भी बेहतर काम करेगा)। ग्रेडियेंट परत बनाने के तरीके पर स्टैक ओवरफ़्लो पर बहुत सारे समाधान हैं, जैसे कि: Create gradient image programmatically in iOS

यह कहकर कि मुझे समझ में नहीं आता कि आपका प्रश्न क्यों कम हो गया है। मुझे लगता है कि यह बनाने के लिए एक बिल्कुल अच्छा सवाल है।

आशा है कि इससे मदद मिलती है!

2
if (!UIAccessibilityIsReduceTransparencyEnabled()) {   
     self.BlurView.backgroundColor = [UIColor clearColor]; 
     UIBlurEffect *blurEffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleLight]; 
     UIVisualEffectView *blurEffectView = [[UIVisualEffectView alloc] initWithEffect:blurEffect]; 
     blurEffectView.frame = self.view.bounds; 
     [blurEffectView setAlpha:1.0]; 
     [self.BlurView addSubview:blurEffectView];   
    } 

कहाँ self.BlurViewUIView का प्रकार है।

आप इसे अपने ऊपरी और निचले दृश्य के लिए रख सकते हैं। और आपके ऊपरी और निचले आयामों के अनुसार फ्रेम blurEffectView.frame समायोजित कर सकते हैं।

आशा है कि यह आपकी मदद करेगा।

1
  1. अपनी पृष्ठभूमि छवि के साथ UIImageView सेट अप करें।
  2. शीर्ष पर UIVisualEffectView जोड़ें:

    UIVisualEffectView * vs = [[UIVisualEffectView alloc] initWithEffect:[UIBlurEffect effectWithStyle:UIBlurEffectStyleDark]]; 
    vs.frame = self.view.bounds; 
    [self.view addSubview:vs]; 
    
  3. शीर्ष पर एक UIView जोड़ें, और उस में अपने UITableView (या जो भी) डाल दिया।
  4. यह कोड जोड़ें:

    CAGradientLayer * layer = [CAGradientLayer layer]; 
    layer.frame = tableHolder.bounds; 
    layer.colors = [NSArray arrayWithObjects:(id)[UIColor blackColor].CGColor, (id)[UIColor clearColor].CGColor, (id)[UIColor clearColor].CGColor, nil]; 
    layer.locations = @[@0.90,@0.99,@1.0]; 
    layer.startPoint = CGPointMake(0.0, 1.0f); 
    layer.endPoint = CGPointMake(0.0f, 0.0f); 
    tableHolder.layer.mask = layer; 
    tableHolder.layer.masksToBounds = true; 
    [tableHolder.layer insertSublayer:layer atIndex:0]; 
    

अपनी जरूरतों के लिए चर को समायोजित करें, तो आप स्थान बदलने के लिए होगा।

आप शीर्ष और बोतलों को 'धुंधला' नहीं कर रहे हैं, लेकिन धीरे-धीरे ढाल परत के माध्यम से उन्हें बाहर निकाल रहे हैं।