CAShapeLayerを使用して四分円を描いています。シングルタップで90度変形したいのですが、そうするとレイヤーが変形して画面からはみ出してしまいます。中心点を中心に回転が必要です。中心を想定しましょうポイントは (100,100) です。これが私のコードです:
CGMutablePathRef path = CGPathCreateMutable();
//CGPathMoveToPoint(path, NULL, self.bounds.size.width/2, self.bounds.size.height/2);
CGPathAddArc(path, NULL, self.bounds.size.width/2, self.bounds.size.height/2, 100, (0), (M_PI_2), NO);
CGPathAddArc(path, NULL, self.bounds.size.width/2, self.bounds.size.height/2, 100-50, (M_PI_2), (0), YES);
CGPathCloseSubpath(path);
CAShapeLayer* arcLayer = [[CAShapeLayer alloc]init];
arcLayer.path = path;
arcLayer.fillColor = [UIColor yellowColor].CGColor;
[self.layer addSublayer:arcLayer];
アニメーション コード :
CABasicAnimation *spin = [CABasicAnimation animationWithKeyPath:@"transform.rotation"];
spin.removedOnCompletion = NO;
spin.fillMode = kCAFillModeForwards;
[spin setByValue:[NSNumber numberWithFloat:M_PI_2]];
//layer.affineTransform = CGAffineTransformMakeRotation(M_PI_2);
[spin setDuration:1.0];
[layer addAnimation:spin forKey:@"transform.rotation"];
私を助けてください。