Ios bezierPath移动指向错误的坐标系
我正在尝试沿任意路径设置按钮的动画。为此,我需要创建一个我正在使用BezierPath的路径 然而,每当我将moveToPoint设置为0,0而不是从屏幕左上角开始动画时,就会发生一些奇怪的事情。按钮显示得有点向上,朝左,所以它只能部分可见 这里发生了什么?moveToPoint是否使用其他坐标系 按钮的定位点设置为左侧的标准顶部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
- (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。或者,可以移动层的锚点,但这会产生副作用