2012-04-27 3 views
0

이미지를 하나씩 스크롤해야합니다. 다음은 내가 사용하는 코드입니다.CABasicAnimation을 사용하여 이미지 배열 스크롤

_imageView는 UIImageView이고 imagesArray는 객체 배열을 갖는 NSArray입니다.

_imageView.animationImages=imagesArray; 
  _imageView.animationDuration=10; 
   [_imageView startAnimating]; 
     
   CABasicAnimation *scrollText; 
   scrollText=[CABasicAnimation animationWithKeyPath:@"position.x"]; 
   scrollText.duration = 10.0; 
   scrollText.speed= 3; 
   scrollText.repeatCount = 0; 
   scrollText.autoreverses = NO; 
    
   scrollText.fromValue = [NSNumber numberWithFloat:500]; 
   scrollText.toValue = [NSNumber numberWithFloat:-200.0]; 
    
   [[_imageView layer] addAnimation:scrollText forKey:@"scrollTextKey"]; 

이미지가 스크롤되고 하나씩 변경되는 것을 볼 수 있습니다. 그러나 이러한 이미지는 서로 관련성이 없습니다. 프레임/스크린을 떠날 때 하나씩 이미지를 변경하고 싶습니다. 어느 사람이 어떤 생각을 제안 할 수 있습니까?

답변

1

나는 당신이 무엇을 요구하고 있는지 잘 모르겠습니다. 일련의 이미지가 화면의 맨 아래에서 시작하여 애니메이션이 화면 위쪽에서 움직이는 애니메이션을 만들고 싶다고 말하는 것 같습니다.

이렇게하려면 화면의 맨 아래에서 벗어난 화면에서 이미지를 움직이는 애니메이션을 만든 다음 다른 이미지로 애니메이션을 여러 번 반복 할 수 있습니다. 이 같은.

imageNumber 인스턴스 변수를 정의하십시오. 0으로 설정하고 animateImage (아래)를 호출하여 애니메이션을 시작합니다.

-(void) animateImage; 
{ 
    _imageView.image = [imagesArray objectAtIndex: imageNumber]; 
    CGPoint imageCenter = _imageView.center; 
    imageCenter.y = 500; 
    _imageView.center = imageCenter; 
    [UIView animateWithDuration: 10 
    delay: 0.0 
    options: UIViewAnimationOptionCurveLinear 
    animations: 
    ^{ 
     CGPoint newImageCenter = _imageView.center; 
     newImageCenter.y = -200; 
     _imageView.center = imageCenter; 
    completion: 
    ^{ 
     imageNumber++; 
     if (imageNumber < [imagesArray count]) 
     [self animateImage]; 
    } 
    ]; 
} 
+0

감사 :

코드는 다음과 같을 수 있습니다. 그것은 나를 도울 것입니다. 나는 CALayer와 CABasicAnimation을 사용하여 그것을 달성했다. 나는이 방법을 시도 할 것이다. LOC는 매우 적다. 다시 한번 감사드립니다. – Perseus

+0

LOC = 코드 라인? –