본문 바로가기

Develop/Objective-C

OpenCoverFlow  구현 따라하기~

1. New Project를 생성 합니다. 프로젝트 형태는 View Based로 하시면 되구요. 프로젝트 명은 CoverFlow입니다.

2. 프로젝트를 생성하고 나서  다운로드:::::

 OpenFlow.zip 압축을 해제 한 후, 프로젝트에 가져오기 합니다.
  - 프로젝트명에서 마우스 오른쪽 버튼을 누르고  Existing Files...



- 해당 하는 파일 을 선택 한 후 Copy items into destination group's folder(if needed) 반드시 체크


- CoverFlow는 Frameworks중에서 QuartzCore.framework 와 CoreGraphics.framework 를 필요로 합니다. Frameworks 폴더 아래에 아래와 같이 추가 합니다. 프레임워크 추가시에는 Copy items into destination group's folder(if needed) 부분을 체크 하시면 안됩니다.

3. CoverFlowViewController.h 파일을 아래와 같이 수정 합니다. OpenFlow라이브러리는 거의 모든 기능이 구현되어 있고, 앱과의 연동도 delegate로만 연결을 하면 됩니다. AFOpenFlowView.h를 import하고 AFOpenFlowViewDataSource, AFOpenFlowViewDelegate 를 사용할 수 있도록 적용합니다.


#import <UIKit/UIKit.h>

#import "AFOpenFlowView.h"


@interface DmdCenterViewController : UIViewController <AFOpenFlowViewDelegate, AFOpenFlowViewDataSource>{

    

}


@end

 




5. CoverFlowViewController.m 에 아래 와 같이 코딩을 합니다.
  - viewDidLoad에 앱 로딩시 리소스에 있는 이미지를 로딩 하여 커버 플로우의 뷰에 추가를 해 줍니다.

 

// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.

- (void)viewDidLoad

{

    [super viewDidLoad];

    

    NSString *imageName;

for (int i=0; i < 10; i++) {

imageName = [[NSString allocinitWithFormat:@"%d.jpg", i];

[(AFOpenFlowView *)self.view setImage:[UIImage imageNamed:imageName]forIndex:i];

[imageName release];

}

[(AFOpenFlowView *)self.view setNumberOfImages:10];


}
 

 


- 30개의 이미지를 for문을 통해서 해당 리소스를 로딩하여, AFOpenFlowView에 로딩한 이미지를 설정해 줍니다. 설정이 다 끝난 후에는 setNumberOfImages 메소드를 이용하여 전체의 커버 플로우개수를 셋팅 합니다. 매우 간단하죠 ^^

6. 여기 까지 작업 한 후에 실행을 해보시기 바랍니다. 
  - 아마도 에러가 발생 할 겁니다. 
  - [(AFOpenFlowView *)self.view setImage:[UIImage imageNamed:imageName] forIndex:i]; 이부분에서 메소드 인식 에러가 발생 합니다. 아래와 같이 수정을 하면 됩니다.
  CoverFlowViewController.xib 파일을 마우스로 더블 클릭 하여 interfacebuilder을 실행 합니다. 아래 그림 과 같이 Open Flow View의 Class Identity를 UIView에서 AFOpenFlowView로 변경을 합니다. 

7. 이제 실행을 해보시면 아래와같은 실행 모습을 보실 수 있을 것입니다.

8. 실행 화면이 멋집니다. 이걸 처음 부터 구현하신 분에게 감사 드립니다. 여기서 시뮬레이터를 좌 또는 우측으로 돌리면 커버플로우 화면이 돌아가야 하는데 현재 돌아 가지 않습니다. 아래의 코드를 CoverFlowViewController.m에 추가 하시면 됩니다.

 

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation

{

    // Return YES for supported orientations

    //return (interfaceOrientation == UIInterfaceOrientationPortrait);

    return YES;

}
 

 

감사합니다 온스토리님~