0
У меня есть CAShapeLayer, который содержит в себе «отверстие» и прозрачное окружение (see screenshot). Я хочу оживить радиус этого круга (я хочу сделать его больше или меньше). Есть идеи ?Как изменить путь к CAShapleLayer?
это мой слой:
CAShapeLayer *fillLayer = [self getCircleLayerWithRadius:self.view.frame.size.width/2];
getCirleWithRadius функция:
-(CAShapeLayer *)getCircleLayerWithRadius:(NSInteger)radius {
UIBezierPath *path = [UIBezierPath bezierPathWithRoundedRect:self.view.frame cornerRadius:0];
UIBezierPath *circlePath = [self getCirclePathWithRadius:radius];
[path appendPath:circlePath];
path.usesEvenOddFillRule = YES;
CAShapeLayer *fillLayer = [CAShapeLayer layer];
fillLayer.path = path.CGPath;
fillLayer.fillRule = kCAFillRuleEvenOdd;
fillLayer.fillColor = [UIColor grayColor].CGColor;
fillLayer.opacity = 0.5;
return fillLayer; }
getCircleWithRadius:
- (UIBezierPath *)getCirclePathWithRadius:(NSInteger)radius {
CGRect rect = self.view.frame;
UIBezierPath *circlePath;
circlePath = [UIBezierPath bezierPathWithArcCenter:(CGPoint){rect.size.width/2, rect.size.height/2} radius:radius startAngle:0 endAngle:M_PI*2 clockwise:YES];
return circlePath;}
Взгляните на 'CABasicAnimation' – ColdSteel