2014-11-11 3 views
0

임의의 경로를 따라 단추에 애니메이션을 적용하려고합니다. 그 목적을 위해 저는 BezierPath를 사용하고있는 경로를 만들어야합니다.bezierPath moveToPoint 잘못된 좌표계 ​​

그러나 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"]; 
} 

답변

1

기본적으로 레이어의 가운데로 설정된 레이어의 위치 속성에 애니메이션을 적용 할 수 있습니다. 단추 레이어의 중심을 0,0으로 설정하면 화면 가장자리에 가운데에 맞춰지고 반쪽에 배치됩니다.

시작점을 너비/2, 높이/2로 설정해야합니다. 또는 앵커 포인트를 이동할 수 있지만 부작용이 있습니다.

+0

아, thnks ....... –