http://hiphapis.net/entry/static-library

NavigationController를 사용 할 경우 특정 View에서만 회전(Rotate)이 안된다.

그래서 강제로 회전 시켜줘야 한다.

 

 

1)   회전시키고 싶은 viewController.h에서


#import <UIKit/UIKit.h>
#define degreesToRadians(x) (M_PI*(x)/180.0)
@interface viewController : UIViewController {

:

:

}


 

2)   회전시키고 싶은 viewController.m에서  밑에 함수를 추가 해준다.


 

- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation duration:(NSTimeInterval)duration
{
    if(interfaceOrientation == UIInterfaceOrientationPortrait)
    {
        [[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationPortrait];      //Status Bar 회전      
        CGAffineTransform transform = CGAffineTransformMakeRotation(degreesToRadians(0));               //View 회전
        [self.navigationController.view setTransform:transform];
        [self.navigationController.view setBounds:CGRectMake(0.0, 0.0, 320.0, 480.0)];
                     //View의 영역을 맞춤
    }
    else if(interfaceOrientation == UIInterfaceOrientationLandscapeLeft)
    {
        [[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeLeft];
      //Status Bar 회전
        CGAffineTransform transform = CGAffineTransformMakeRotation(degreesToRadians(-90));
               //View 회전
        [self.navigationController.view setTransform:transform];
        [self.navigationController.view setBounds:CGRectMake(0.0, 0.0, 480.0, 320.0)];                     //View의 영역을 맞춤
    }
    else if(interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown)
    {
        [[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationPortraitUpsideDown];    
    //Status Bar 회전   
        CGAffineTransform transform = CGAffineTransformMakeRotation(degreesToRadians(180));
               //View 회전
        [self.navigationController.view setTransform:transform];
        [self.navigationController.view setBounds:CGRectMake(0.0, 0.0, 320.0, 480.0)];
                     //View의 영역을 맞춤
    }
    else if(interfaceOrientation == UIInterfaceOrientationLandscapeRight)
    {
        [[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeRight];
      //Status Bar 회전
        CGAffineTransform transform = CGAffineTransformMakeRotation(degreesToRadians(90));
               //View 회전
        [self.navigationController.view setTransform:transform];
        [self.navigationController.view setBounds:CGRectMake(0.0, 0.0, 480.0, 320.0)];
                     //View의 영역을 맞춤
    }
}


 

3)   해당 viewController.m에서 밑의 함수에 추가해준다.

- (void)viewWillDisappear:(BOOL)animated
{
    [super viewWillDisappear:animated];

 [[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationPortrait animated:YES];
 CGAffineTransform transform = CGAffineTransformMakeRotation(degreesToRadians(0));
 [self.navigationController.view setTransform:transform];
 [self.navigationController.view setBounds:CGRectMake(0.0, 0.0, 320.0, 480.0)];

}

 

 

참고 : http://cafe.naver.com/mcbugi/51367

 

 

이 글은 스프링노트에서 작성되었습니다.

  1. Lee 2012.09.20 20:17

    멋진 소식입니다. 난 아주 뉴스와 아이디어를 검색하고 있습니다. 나는 귀하의 사이트에서 발견 한 뭐, 사실은 매우 콘텐츠입니다. 이 게시물에 대한 오랜 시간을 보냈습니다. 그것은 매우 유용하고 흥미로운 사이트입니다. 감사합니다!


1. 상단바에서 'Product'를 선택한다.
2. 하위 메뉴인 'Edit Scheme...'를 선택한다.
3. 창이 뜨면 'Environment Varialbles'를 찾아 '+'를 누르고
    Name에는 NSZombieEnabled 를 추가하고 Value에는 YES 를 추가한다.


단, Debug 모드일때만 사용하고 앱스토어에 올릴때나 Release 할때에는 반드시 꺼야 한다.


참고: http://cafe.naver.com/mcbugi/13405

>>키보드의 return을 눌렀을 때
1.
_ViewController.h - (IBAction) textEndReturn: (id)sender; 메소드를 추가한다.
_ViewController.m 에는
- (IBAction) textEndReturn: (id)sender
{
       
[sender resignFirstResponder];
}

를 추가한다.

2.
인터페이스 빌더에서 연결해 주어야 한다.
각 TextField 에서 마우스 오른쪽버튼을 누르고 
'Sent Events'에서 Did End On Exit 에서 File's Owner 연결하고
 아까 추가하였던 textEndReturn가 나타 나면 선택하여 연결해 준다.


>> TextField외를 터치 했을 때
1.

참고: http://blog.daum.net/yellowjini/5216143

 

 -> 프로젝트명-info.plist 선택

->  마우스 오른쪽 클릭 - Add Row 클릭 - "Icon already includes gloss effects" 항목을 추가한다 - Value 는 YES 로 입력한다.

이 글은 스프링노트에서 작성되었습니다.

+ Recent posts