2012-10-23 3 views
2

뭔가 설명하려고하고 있으므로 테스트 프로젝트를 만들었습니다. 단일 뷰 응용 프로그램을 만들고 세로 방향 (프로젝트 요약) 만 설정하고 상태 표시 줄을 숨 깁니다 (ViewController.xib).왜이 화면 크기 범위가 잘못 되었습니까?

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event { 
    UITouch* touch = [touches anyObject]; 
    CGPoint point = [touch locationInView:[self view]]; 
    NSLog(@"%@", NSStringFromCGPoint(point)); 
} 

이론적으로, 지금 (320)의 폭과 480

의 높이 표시가 있어야합니다 ViewController.m에서

나는 나의 터치 지점을 검출하기위한 하나의 작은 방법을 썼습니다 그래서 폭을 슬라이딩하기 시작하면 명령 행에서 0 ~ 320의 값을 볼 수 있습니다. 실제로 문제가 없지만 실제로는 2,5 ... 317 범위의 값을 갖습니다.

높이에서 슬라이딩을 시작하면 0 ... 4 범위의 값이 표시됩니다. 명령 줄에서 80. 그러나, 여기에 내가 문제가있는 곳. 실제로이 범위는 -5.5 ... 469입니다.

이유가 무엇인지 이해할 수 없습니까? 이 범위는 매우 이상합니다.

+0

locationInView 메서드에 전달할 뷰의 경계 필드를 확인 했습니까? – tiguero

+0

네, 해냈습니다. 이보기의 범위는 [320, 480] – user1229413

+0

무엇입니까? 범위 및 프레임 – tiguero

답변

0

locationInViewrootViewController보기의 방법으로 전달해야합니다. 이 방법으로 표시되는 좌표는 전달중인 뷰를 기준으로합니다.

+0

Xcode가 자동으로 단일 뷰 프로젝트 템플릿을 생성하므로이 ViewController는 RootViewController입니다. – user1229413

관련 문제