2013-05-27 3 views
1
the label is not animating . . . . 



    UILabel * m_pLabel = [[UILabel alloc] initWithFrame:CGRectMake(100, 10, 100, 40)]; 

    [m_pLabel setBackgroundColor:[UIColor redColor]]; 

    [self.view addSubview:m_pLabel]; 


    CABasicAnimation * m_pAnimationObj = [CABasicAnimation animationWithKeyPath:@"key"]; 

    [m_pAnimationObj setFromValue:[NSValue valueWithCGRect:CGRectMake(100, 10, 100, 40)]]; 

    [m_pAnimationObj setToValue:[NSValue valueWithCGRect:CGRectMake(100, 500, 100, 40)]]; 

    m_pAnimationObj.duration = 5.0; 

    m_pAnimationObj.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; 

    [m_pLabel.layer addAnimation:m_pAnimationObj forKey:@"key"]; 

답변

1

가 당신을 도울 것입니다 this..hope이 시도 :

이 애플 기술 노트를 참조하십시오.

UILabel * m_pLabel = [[UILabel alloc] initWithFrame:CGRectMake(100, 10, 100, 40)]; 

    [m_pLabel setBackgroundColor:[UIColor redColor]]; 

    [self.view addSubview:m_pLabel]; 


    CABasicAnimation * m_pAnimationObj = [CABasicAnimation animationWithKeyPath:@"transform.translation"]; 

    [m_pAnimationObj setFromValue:[NSValue valueWithCGRect:CGRectMake(100, 10, 100, 40)]]; 

    [m_pAnimationObj setToValue:[NSValue valueWithCGRect:CGRectMake(100, 500, 100, 40)]]; 

    m_pAnimationObj.duration = 1.0; 

    m_pAnimationObj.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; 

    [m_pLabel.layer addAnimation:m_pAnimationObj forKey:@"animations"]; 
+0

네, 잘 됐네요 .... 고마워. –

0

UIView의 애니메이션하는 방법에 대한 튜토리얼이 많이있다 : 여기 How To Use UIView Animation Tutorial 도움이 될 수있는 예입니다 현재

//UIViewAnimationOptionAutoreverse option, try the code below: 

UIView * testView = [[UIView alloc] initWithFrame:CGRectMake(20.0f, 100.0f, 300.0f, 200.0f)]; 
[testView setBackgroundColor:[UIColor blueColor]]; 
[self.view addSubview:testView]; 

[UIView animateWithDuration:0.3f 
        delay:0.0f 
       options:UIViewAnimationOptionRepeat | UIViewAnimationOptionAutoreverse 
      animations:^{ 
       [testView setFrame:CGRectMake(0.0f, 100.0f, 300.0f, 200.0f)]; 
      } 
      completion:nil]; 

[testView release]; 
+0

감사합니다.이 애니메이션은 CABasicAnimation 개체를 통해서만 만들고 싶습니다. –

0

논리적으로 @ "frame"속성 일 때 @ "key"속성에서 작동하도록 애니메이션에 요청합니다. 하지만, 어쨌든 레이어에서 작동하지 않습니다. 애니메이션은 지정된 변경 사항을 적용 할 대상을 알고 있어야하지만 변경 사항을 'true'속성에 적용 할 수 있어야합니다. "프레임"은 파생 된 속성입니다.

위치를 변경하려면 '위치'에 애니메이션을 적용하고 크기를 변경해야 '경계'속성에 애니메이션을 적용해야합니다. http://developer.apple.com/library/mac/qa/qa1620/_index.html

+0

키를 프레임으로 변경했지만 행운이 없습니다 .... 애니메이션이 적용되지 않는 레이블 ... 외부로 애니메이션을 적용해야합니까? –

+0

키와 키 경로를 변경 했습니까? – Wain

+0

네, 둘 다 바꿨습니다 ... –