Category Archives: 허접프로그래머

[iPhone] 가로모드(Landscape mode)로 실행하는 방법

게임등을 보면 모두 가로모드로 실행하는 것을 알 수 있습니다. 실제로 가로로 실행을 하더라도 뷰상의 좌표는 세로모드 기준으로 적용되기 때문에 어려움이 많죠.

프로그램이 오로지 가로에서만 실행된다면 아예 가로모드 기반으로 뷰를 잡아놓고 개발하는 것이 편리할 것입니다.

우선 Info.plist파일에 다음과 같은 프로퍼티를 두가지 추가합니다.

UIInterfaceOrientation(String) : UIInterfaceOrientationLandscapeRight
UIStatusBarHidden(Boolean)   : YES
사용자 삽입 이미지UIStatusBarHidden옵션은 상태바를 제거할것인지에 대한 설정인데 Value Type을 Boolean으로 바꾸는것을 잊지 마세요.

[code]- (void)applicationDidFinishLaunching:(UIApplication *)application {
    // 스테이터스바를 포함하지 않은 전체 화면의 크기를 가져온다.
    CGRect windowRect = [[UIScreen mainScreen] bounds];
    NSLog(@”window’s size : width – %f, height – %f”, windowRect.size.width, windowRect.size.height);
   
    // 화면의 가로세로 크기를 바꾸어 CGRect를 생성한다. window의 배경과 구분을 두기위해 일부러 가로세로에서 10Point를 뺐다.
    CGRect viewRect = CGRectMake(0.0f, 0.0f, windowRect.size.height – 10.0f, windowRect.size.width – 10.0f);
   
    // 화면의 회전값을 구한다.
    CGAffineTransform transform = CGAffineTransformRotate(CGAffineTransformIdentity, M_PI * 90.0f / 180.0f);
   
    // 뷰와 그안에 들어갈 라벨을 생성, 라벨은 0x0위치에 생성 하는것을 주목한다.
    UIView *view = [[UIView alloc] initWithFrame:viewRect];
    UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 100.0f, 20.0f)];
   
    // 화면을 회전시키고 중앙 지점을 맞춘다.
    [view setTransform:transform];
    [view setCenter:window.center];
   
    // 평범한 처리들
    [label setText:@”Where am I?”];
    [view setBackgroundColor:[UIColor whiteColor]];
    [view addSubview:label];
    [label release];

    [window addSubview:view];
    [view release];
   
    [window setBackgroundColor:[UIColor darkGrayColor]];
    [window makeKeyAndVisible];
}[/code]
대충 요약하면 가로모드의 현재 크기를 구한후에 가로와 세로를 바꾼 뷰를 생성하고 실제 화면의 포인트 영역을 회전시킨 후에 뷰의 중앙을 화면의 중앙과 맞추는 과정입니다. 아래와 같이 나오면 성공입니다.
사용자 삽입 이미지1206056193.zip

[iPhone] 어플종료후에 모바일 사파리로 특정 사이트 접속하기

프로그램을 사용중에 프로그램이 종료되면서 모바일 사파리가 실행되면서 웹페이지에 접속되는 경우를 볼 수 있습니다.

다음과 같은 방법으로 어플리케이션 실행중에 중단을 하고 모바일 사파리를 띄워 웹 사이트에 접속할 수 있습니다.

[code][[UIApplication sharedApplication] openURL:[NSURL URLWithString:@”http://theeye.pe.kr”]];[/code]

멀티태스킹은 안되는지라, 현재 실행중인 프로그램은 바로 죽게 됩니다. 추가로 앱스토어로 바로 이동하는 방법은 다음과 같습니다.

[code]- (void)applicationDidFinishLaunching:(UIApplication *)application {
    // 버튼을 생성한다.
    UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    [button    setTitle:@”Go to Appstore” forState:UIControlStateNormal];
    [button setFrame:CGRectMake(30.0f, 50.0f, 200.0f, 30.0f)];
    [button addTarget:self action:@selector(launchAppStore:) forControlEvents:UIControlEventTouchDown];
   
    // 버튼을 window에 붙인다.
    [window addSubview:button];
    [window makeKeyAndVisible];
}

– (void)launchAppStore:(id)sender {
    // 버튼이 눌러지면 해당 페이지로 이동한다.
    NSString *iTunesLink = @”itms://phobos.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=304878510&mt=8″;
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:iTunesLink]];
}[/code]

사실 주소의 프로토콜은 itms가 아닌 http로 해도 상관없습니다만, 위의 방법이 좀더 직관적이고 리다이렉트없이 빨리 뜨는것 같습니다.

이동하고 싶은 앱의 URL을 알아내는 방법은 아이튠즈에서 해당 앱스의 이름을 오른쪽 클릭하면 URL을 알아낼 수 있습니다.

도메인의 호스트영역이 itunes로 되어있는데 그 부분을 위와 같이 phobos로 수정하여 사용하시면 됩니다.

애플과 수익을 분배하는 affiliate에 가입하여 사용을 원하신다면 [이곳]의 글을 참고하시기 바랍니다.
1160771198.zip