2010-08-01 2 views
0

iPhone에서 수동으로 창보기에 하위보기를 추가 할 때 상단 상태 표시 줄의 20 픽셀에 대해 계정을해야합니까? 그게 내가 (0, 20, 320, 460)에 프레임 세트 뷰를 생성해야합니까입니다 :iPhone의 경우 최상위 상태 표시 줄의 20 픽셀을 고려해야합니까?

UIView *myView = [[UIView alloc] initWithFrame:CGRectMake(0, 20, 320, 460)]; 
[window addSubview:myView]; 

그렇다면,이에 관련된 몇 가지 공식 가이드 라인이있다? 방금 막혔는데 실험을하고 나니 실제로 그런 것 같습니다. 이것은 nib 파일에서 뷰를 생성 할 때 인터페이스 빌더를 사용할 때 뷰의 높이가 460 픽셀로 이미 설정되어 있고 뷰가 윈도우에 추가 될 때 이미 제대로 표시되므로 항상 20 픽셀 아래로 자동 이동됩니다 위치한다.

반면에, 이것은 다소 어수선하고 근시안적입니다. 왜 애플은 20 픽셀을 하드 코딩하고 마술 상쇄 작용을했을까요? 왜 나는 프로그래머로서 상태 표시 줄에 대해 알고 있고 추측해야합니까? 왜 윈도우가 이미 자체적으로 오프셋되지 않았습니까? 알려진 제한 사항입니까? 아니면 이유가 있을까요?

+0

비슷한 주제 : http://stackoverflow.com/questions/1114557/resize-for-in-call-status-bar/1114596#1114596 – user123444555621

답변

0

일반적으로보기 프레임을 설정할 때입니다.

상태 표시 줄은 효과적으로 캔버스를 축소합니다.

이제는 이상한 예외가 있었지만 기본 인터페이스 작업을 수행 할 때는 그 중 아무 것도 관련이 없습니다.

+0

흠 - 이렇게보기를 만들면 UIView * myView = [[ UIView alloc] initWithFrame : CGRectMake (0, 0, 320, 20)]; myView.backgroundColor = [UIColor redColor]; 창에 추가하면보기가 상태 표시 줄에 완전히 가려집니다. 그러나 괴짜들과 나는 동의한다. 일부 특수한 경우 뷰가 20 픽셀 씩 상쇄 될 수 있다고 불평하는 사람들을 보았습니다. –

+0

UIViewController XIB를 살펴보고 상태 표시 줄을 시뮬레이트하면 상태 표시 줄 바로 아래 좌표계가 0,0임을 알 수 있습니다. 어쩌면 UIWindow는 부모보기와 다른 경우 일 수 있습니다. –

관련 문제