iphone에서 화면에 대한 회전을 시키기 위한 간단한 코드는..
[[UIDevice currentDevice] setOrientation:orientation] 이다.
하지만, 이 코드는 non-public API 사용으로 인한 리젝 사유가 되므로 사용할 수 없기 때문에 아래와 같이 회전 관련 메서드를 만들어주어야 한다.
//화면 회전 처리
-(void)SetDeviceOrientation:(UIInterfaceOrientation)orientation
{
//가로보기 강제
if(orientation==UIInterfaceOrientationPortrait)
{
orientation=UIInterfaceOrientationLandscapeRight;
}
//세로보기 강제
else if(orientation==UIInterfaceOrientationLandscapeRight)
{
orientation=UIInterfaceOrientationPortrait;
}
int radian=0;
CGRect viewFrame = CGRectMake(0.0f, 0.0f, 320.0f, 480.0f);
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration: 0.2];
if(orientation==UIInterfaceOrientationLandscapeLeft
|| orientation==UIInterfaceOrientationLandscapeRight)
{
viewFrame = CGRectMake(0.0f, 0.0f, 480.0f, 320.0f);
}
if(orientation==UIInterfaceOrientationPortrait)
{
radian=0;
}
else if(orientation==UIInterfaceOrientationPortraitUpsideDown)
{
radian=180;
}
else if(orientation==UIInterfaceOrientationLandscapeRight)
{
radian=90;
}
else if(orientation==UIInterfaceOrientationLandscapeLeft)
{
radian=270;
}
//뷰 회전 시키기
CGAffineTransform transform =
CGAffineTransformMakeRotation(degreesToRadian(radian));
self.view.transform=transform;
self.view.bounds=viewFrame;
[UIView commitAnimations];
}