2012-10-23 63 views
2

我想解釋一些東西,所以我創建了一個測試項目。我創建了一個單視圖應用程序,只設置縱向(在項目摘要中)並隱藏狀態欄(在ViewController.xib中)。爲什麼這個屏幕尺寸範圍錯了?

ViewController.m我寫一個小的方法,用於檢測我的觸摸點:

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

在理論上,我現在應該具有的320的寬度和480

的高度的顯示所以,如果我開始在寬度上滑動,我會在命令行中看到範圍在0 ... 320的值。這裏我沒有問題,實際上我的值在2,5 ... 317範圍內。

所以,如果我開始在身高上滑動,我會看到範圍爲0 ... 4 80在命令行中。但是,在這裏,我遇到了問題。在實踐中,這個範圍是-5.5 ... 469。

我不明白爲什麼這是這樣嗎?這個範圍很奇怪。

+0

您是否檢查了您傳遞給locationInView方法的視圖的邊界字段? – tiguero

+0

是的,我做到了。這種觀點的界限是[320,480] – user1229413

+0

什麼是起源?對於邊界和框架 – tiguero

回答

0

您需要傳遞給方法locationInView您的rootViewController的視圖。這個方法表達的座標是相對於你傳遞的視圖而言的。

+0

Xcode自動生成單視圖項目模板,所以這個ViewController是RootViewController。 – user1229413