2010-02-17 5 views
1

내 응용 프로그램에서 오리엔테이션 변경 기능을 구현하려고합니다. - (void) didRotateFromInterfaceOrientation : (UIInterfaceOrientation) fromInterfaceOrientation을 재정의했습니다.아이폰 오리엔테이션 변경

이 방법에서는보기에있는 테이블 뷰의 프레임 크기 (셀 항목의 위치 포함)를 변경합니다. 의 tableview 상세 : self.view의 addSubView :있는 tableView] 같은 뷰

  1. 라이트 뷰 컨트롤러의 viewDidLoad 방법에있어서;
  2. 셀 항목 (행)에는 텍스트 필드와 세그먼트 컨트롤이 있습니다.
  3. 테이블보기에는 10 개의 셀이 있고 가로 모드에서는 2 개의 셀만 표시되며 potrait 모드에서는 5 개의 셀이 표시됩니다.

나는 scroller를 구현했다.

문제 : 방향 전환을 potrait 모드로 변경하면 셀의 특정 세그먼트 컨트롤이 렌더링되지 않습니다 (전혀 표시되지 않음).

가로 모드에서 마지막 몇 개의 셀을보고 potrait 모드로 방향을 바꿀 때 이런 일이 발생합니다.

답변

0

프레임 조정에 문제가 있다고 생각합니다. 나는 초상화에서 풍경으로 회전 할 때 비슷한 문제가있었습니다. 회전 과정 (설정 프레임, 위치 등)의 논리가 올바른지 확인하십시오. 테이블이 제대로 조절되고 회전 할 때 있는지 UIViewAutoresizingFlexibleHeight | 나를 위해이 문서에서는 UIViewAutoresizingFlexibleWidth에 autoresizingMask을 설정하려고 수있는 tableView에 대한 link text

정말 유용했다.

tableView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;

0

내 샌드 박스 응용 프로그램 해결책은 간단하다 인터페이스

https://github.com/comonitos/programatical_device_orientation

(H 파일) :

BOOL 회전; 구현

(m 파일)

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{ 
    return rotated; 
} 
- (void) setup 
{ 
    rotated = YES; 
    [[UIDevice currentDevice] setOrientation:UIDeviceOrientationLandscapeLeft]; 
    rotated = NO; 
} 
관련 문제