[iOS프로그래밍] XCode 애니메이션(움직이는 이미지) 만들어보기


iOS/아이폰 프로그래밍 2012.05.08 10:07



// ViewApplication.h

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController
{
    IBOutlet UIImageView *aniview1;
}
@end


// ViewApplication.cpp

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    
    aniview1.animationImages = [NSArray arrayWithObjects:
                                [UIImage imageNamed:@"ani01.png"],
                                [UIImage imageNamed:@"ani02.png"],
                                [UIImage imageNamed:@"ani03.png"], nil];
    
    aniview1.animationDuration=0.50;  // 초단위 이미지 변경 시간(숫자가 작을수록 빨라집니다)
    aniview1.animationRepeatCount=0; // 반복횟수, 0이면 무한 반복
    [aniview1 startAnimating];
    [self.view addSubview:aniview1];
}


코드보시면 따로 설명드릴 부분은 없는 듯 하네요. 

안드로이드의 경우도 Frame Animation을 사용해서 png 등 이미지 파일을 배열에 저장해놓고 불러와서 루프를 돌리는 형식이던데, 아이폰도 크게 다르지 않네요. (분명히 더 효율적인 방법이 있을 것같은데...) 안드로이드에서는 파일의 용량이 크고 24장정도되니까 배열에 넣는데 로딩시간이 조금 걸리더라구요. 아이폰은 간단한 파일들로 테스트를 해봐서 로딩시간에 대해서는 정확히 모르겠습니다. 추후 새로운 방법이 있다면 포스팅 하도록 하겠습니다.


 - 주의! 미처 생각하지 못한 부분인데 imageNamed 로 이미지를 불러올 경우 (모바일이라는) 한정된 자원 내에서 같은 이미지파일을 다른 곳에서 부르는 경우 계속 메모리가 할당된다거나, 빠른 재사용을 위해 캐시상에 남아있다는 점 때문에, http://lambert.tistory.com/archive/20110120 을 참고해서 딕셔너리에 넣거나 싱글톤을 통해 사용한 이미지를 지속적으로 사용하는 방법을 추천합니다.  









오늘의 블록체인 뉴스

WRITTEN BY
ShakeJ

0 , 댓글  3개가 달렸습니다.
  1. 될 수 있으면 imageNamed: 메소드는 사용하지 않는 것이 좋습니다...^^
    그 이유는 구글링 해보면 더 자세히 알 수 있으실 거예요~
  2. 오랫만에 인사드리고 가요.
  3. 네..^^ 물론 사용하기 나름이지만 말입니다~ㅎ
    빠른 이미지 로딩을 위한 캐싱이 필요한 부분이라면 사용하시는 것이 좋겠고, 그것이 아니라 메모리 관리가 필요하다면 사용하지 않는게 좋겠습니다...^^
    구글링 하여 찾아보셨을테니 긴 설명은 필요 없을 것 같네요 ㅎ
    http://gcempire.tistory.com/452
    여기에도 좋은 글이 있네요 ㅎ
secret