Я хочу применить тень к внешнему пространству круга. Но радиус тени вступает в силу также на внутренней стороне, так что основной круг выглядит меньше, чем есть на самом делеПочему радиус тени также оказывает влияние на внутреннюю часть круга?
Я рисую круг, как это:
self.shadowLayer = [CALayer layer];
self.shadowLayer.frame = self.view.layer.bounds;
self.shadowLayer.shadowColor = [UIColor blueColor].CGColor;
self.shadowLayer.shadowRadius = 0;
self.shadowLayer.shadowOpacity = 1.0;
self.shadowLayer.shadowOffset = CGSizeMake(0,0);
CGRect frame = CGRectMake(0 , 50, self.view.bounds.size.width, self.view.bounds.size.width);
self.shadowLayer.shadowPath = [UIBezierPath bezierPathWithOvalInRect:CGRectInset(frame, 40, 40)].CGPath;
[self.view.layer addSublayer:self.shadowLayer];
Но если я изменить self.shadowLayer.shadowRadius
от 0 до 30 результатов:
вы можете увидеть, размер сплошного цвета в ядре shrin рунец. Я хочу, чтобы тень вступала в силу только на внешней стороне пути, а сплошной цвет имеет тот же размер, что и в случае shadow radius = 0
. Затем добавляется красная кривая, после чего снимок сделан. Есть только увидеть разницу в размере.
ОБНОВЛЕНИЕ Одна идея состоит в том, чтобы уменьшить shadowRadius
наполовину и расширить рамку на ту же величину. Я думаю, что это будет работать достаточно хорошо.
попытаться дать -40, -40 для shadowlayer как cgrectinset –
будет слишком большим. Рамка круга должна оставаться неизменной в обоих случаях. –