2010-07-02 3 views
9

내 화면 (하나의보기 컨트롤러가 소유)에서 어린이보기 중 하나를 사용하려고합니다. 아니요 기기가 회전 할 때이 회전합니다. 내 뷰 컨트롤러는 회전을 허용하고 전체 회전을 방해하기 위해 하나의 고정 뷰에 90도 회전을 적용하려고합니다.회전 변환을 UIView 또는 해당 레이어로 설정하면 작동하지 않는 것 같습니까?

문제는 모든 것이 어쨌든 회전하는 것으로 보이며 변환은 아무 것도하지 않는 것 같습니다. 나는보기에 affine 변환을 시도하고 레이어 (아래)에 3D 변환을 시도했습니다. 메서드가 호출되고 있지만 시각적 인 차이는 전혀 볼 수 없습니다.

의견이 있으십니까? 감사.

- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation duration:(NSTimeInterval)duration 
{ 
    CALayer *layer = stuckview.layer; 
    layer.transform = CATransform3DMakeRotation(90, 0, 0, 1); 
}  

답변

26

, 내가 좋아하는, 몇 검색 문구를 추가 해요 :

는 UIView의 회전을 정지

회전에서 UIView의 방지

회전에서 jQuery과 배경을 방지

UITableView 백그라운드 회전 중지


,210

어떤 방향을위한 완벽한 샘플 :

- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration 
    { 
     switch (toInterfaceOrientation) { 
      case UIInterfaceOrientationLandscapeLeft: 
       stuckview.transform = CGAffineTransformMakeRotation(M_PI_2); // 90 degress 
       break; 
      case UIInterfaceOrientationLandscapeRight: 
       stuckview.transform = CGAffineTransformMakeRotation(M_PI + M_PI_2); // 270 degrees 
       break; 
      case UIInterfaceOrientationPortraitUpsideDown: 
       stuckview.transform = CGAffineTransformMakeRotation(M_PI); // 180 degrees 
       break; 
      default: 
       stuckview.transform = CGAffineTransformMakeRotation(0.0); 
       break; 
     } 
    } 
+0

내가 확인하고 UIInterfaceOrientationPortraitUpsideDown은 IOS 6 –

+0

에있는 CALayer 또는 UIView의를 stuckview되어 작동하지 않는 것을 발견? –

+0

@AdamWaite - 이름과 설명으로 표시된 UIView입니다! ;-) – nekno

4

코드가 실제로 실행 되었습니까? (shouldAutorotateToInterfaceOrientation을 구현합니까?)

stuckview.transform = CGAffineTransformMakeRotation(M_PI_2); 

이 작업을 수행해야합니다.

참고 : 함수의 각도는 라디안을 사용하지 않습니다. 다른 사람들이 찾을 수 있도록

관련 문제