के मुखौटे क्षेत्र के चारों ओर छाया जोड़ें, मैं को CAShapeLayer
के साथ मास्क कर रहा हूं ताकि मेरी तालिका में कुछ पंक्तियों के अंदर एक बुकमार्क उत्पन्न हो सके।एक कैलियर
CGMutablePathRef path = CGPathCreateMutable();
CGPathAddLines(path,
NULL,
(CGPoint[]){
CGPointMake(8, 0),
CGPointMake(22, 0),
CGPointMake(22, 22),
CGPointMake(15, 16),
CGPointMake(8, 22)
},
5);
CGPathCloseSubpath(path);
CAShapeLayer *mask = [CAShapeLayer layer];
mask.fillColor = [UIColor redColor].CGColor;
mask.bounds = CGRectMake(0, 0, 30, 30);
mask.path = path;
mask.anchorPoint = CGPointMake(0, 0);
CGPathRelease(path);
CAGradientLayer *favoriteBadge = [CAGradientLayer layer];
favoriteBadge.colors =
@[(id)[UIColor colorWithRed:.97f green:0.5f blue:0.1f alpha:1.f].CGColor, // orange
(id)[UIColor colorWithRed:1.f green:.8f blue:0.f alpha:1.f].CGColor]; // yellow
favoriteBadge.locations = @[@0.0, @1.0];
favoriteBadge.bounds = CGRectMake(0, 0, 30, 30);
favoriteBadge.anchorPoint = CGPointMake(1, 0);
favoriteBadge.position = CGPointMake(self.bounds.size.width, 0);
favoriteBadge.mask = mask;
// FIXME: This shadow is not being applied
favoriteBadge.shadowColor = [UIColor colorWithRed:.97f green:0.5f blue:0.1f alpha:1.f].CGColor;
favoriteBadge.shadowOpacity = 1.f;
यह भी फ्लैट लग रहा है, इसलिए मैं इस आकार में ही चारों ओर एक छाया के साथ बंद समाप्त करना चाहते हैं। मैंने परत पर छाया सक्षम करने का प्रयास किया है, लेकिन ऐसा प्रतीत नहीं होता है। मुझे लगता है कि यह उस क्षेत्र में लागू किया जा रहा है जो आकार के अंदर नहीं है। मैं आकार में छाया कैसे जोड़ सकता हूं?
मैं परत की प्रतिलिपि बना सकता हूं, इसे गहरा कर सकता हूं और कुछ पिक्सेल द्वारा अपनी स्थिति ऑफसेट कर सकता हूं, लेकिन यह अपर्याप्त लगता है जब CoreAnimation शायद यह मेरे लिए अधिक कुशलतापूर्वक कर सकता है।
+1 था अच्छी तरह से पूछा + आईडी भी जानना चाहते: डि हमेशा छवि को स्थानांतरित करने और अपने आप को सामान आकर्षित .. –