ios - पारदर्शी ग्रेडियेंट परत के लिए आईओएस व्हाइट ग्रे है




iphone uiview (3)

मेरे पास इस छोटे विवरण दृश्य के नीचे एक कैग्रेडिएंट लेयर डाला गया है जो ऐप के नीचे पॉप अप करता है। जैसा कि आप देख सकते हैं, मैंने रंगों को सफेद से साफ़ करने के लिए सेट किया है, लेकिन यह अजीब भूरे रंग की टिंट दिखाई दे रही है। कोई विचार?

    // Set up detail view frame and gradient
    [self.detailView setFrame:CGRectMake(0, 568, 320, 55)];

    CAGradientLayer *layer = [CAGradientLayer layer];
    layer.frame = self.detailView.bounds;
    layer.colors = [NSArray arrayWithObjects:(id)[UIColor whiteColor].CGColor, (id)[UIColor clearColor].CGColor, nil];
    layer.startPoint = CGPointMake(1.0f, 0.7f);
    layer.endPoint = CGPointMake(1.0f, 0.0f);
    [self.detailView.layer insertSublayer:layer atIndex:0];

यहां समस्याग्रस्त दृश्य है:


clearcolor में 0 का अल्फा वाला काला रंग का चैनल होता है, इसलिए मुझे इसका उपयोग करना पड़ता था

[UIColor colorWithWhite:1 alpha:0]

और यह ठीक काम करता है।


वर्थ इंगित करता है कि उपरोक्त दो उत्तरों के संयोजन का उपयोग करके कोई अन्य रंग इस तरह काम करेगा ....

उद्देश्य सी

UIColor *colour = [UIColor redColor];
NSArray *colourArray = @[(id)[colour colorWithAlphaComponent:0.0f].CGColor,(id)colour.CGColor]
NSArray *locations = @[@0.2,@0.8];

CAGradientLayer *gradientLayer = [CAGradientLayer layer];
gradientLayer.colors = colourArray;
gradientLayer.locations = locations;
gradientLayer.frame = self.frame;

[self.layer addSublayer:gradientLayer];

स्विफ्ट 3

let colour:UIColor = .red
let colours:[CGColor] = [colour.withAlphaComponent(0.0).cgColor,colour.cgColor]
let locations:[NSNumber] = [0.2,0.8]

let gradientLayer = CAGradientLayer()
gradientLayer.colors = colours
gradientLayer.locations = locations
gradientLayer.frame = frame

layer.addSublayer(gradientLayer)

स्विफ्ट में यह मेरे लिए काम किया,

UIColor.white.withAlphaComponent(0).cgColor




cagradientlayer