Ios bezierPath移动指向错误的坐标系

Ios bezierPath移动指向错误的坐标系,ios,objective-c,uibutton,core-animation,uibezierpath,Ios,Objective C,Uibutton,Core Animation,Uibezierpath,我正在尝试沿任意路径设置按钮的动画。为此,我需要创建一个我正在使用BezierPath的路径 然而,每当我将moveToPoint设置为0,0而不是从屏幕左上角开始动画时,就会发生一些奇怪的事情。按钮显示得有点向上,朝左,所以它只能部分可见 这里发生了什么?moveToPoint是否使用其他坐标系 按钮的定位点设置为左侧的标准顶部 - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after

我正在尝试沿任意路径设置按钮的动画。为此,我需要创建一个我正在使用BezierPath的路径

然而,每当我将moveToPoint设置为0,0而不是从屏幕左上角开始动画时,就会发生一些奇怪的事情。按钮显示得有点向上,朝左,所以它只能部分可见

这里发生了什么?moveToPoint是否使用其他坐标系

按钮的定位点设置为左侧的标准顶部

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    bezierPath = [[UIBezierPath alloc]init];
    [bezierPath moveToPoint:CGPointMake(0, 0)];
    [bezierPath addLineToPoint:CGPointMake(52, 83)];
    [bezierPath addLineToPoint:CGPointMake(45, 59)];
    [bezierPath addLineToPoint:CGPointMake(65, 30)];
}

-(void)randomAnimation
{
    CAKeyframeAnimation* keyframeAnimation = [CAKeyframeAnimation animationWithKeyPath:@"position"];
    keyframeAnimation.duration = 4.0;
    keyframeAnimation.path = [bezierPath CGPath];
    [self.rndBtn.layer addAnimation:keyframeAnimation forKey:@"position"];
}

您正在设置层的“位置”特性的动画,该特性默认设置为层的中心。如果将按钮层的中心设置为0,0,则它将位于屏幕边缘的中心,并且为一半

您需要将起点设置为宽度/2,高度/2。或者,可以移动层的锚点,但这会产生副作用