2013-01-08 58 views
0

我有一個針對iPad2(非視網膜1024x768顯示器)的應用程序。我沒有明確地啓用視網膜模式,我的縮放因子被設置爲1,但是觸摸事件是以視網膜模式報告座標,即屏幕的中心是(1024,768)並且角落是(2047,1535)。即使應用程序在非視網膜模式下運行,觸摸仍處於視網膜分辨率

我認爲整個問題是iPad應用程序會自動在非視網膜模式下工作,除非您通過更改比例因子明確啓用它。

我正在使用一個庫來做一些UIView創建,我如何獲得主要的UIView並查詢它以查看發生了什麼?

對於視網膜測試,我只依賴模擬器 - 我有6.1。然而另一位開發人員證實,他沒有迴應他的iPad3設備,所以我確信它不是模擬器問題。

+0

我不知道爲什麼會發生這種情況,你可以發佈一些相關的代碼,看看我們是否可以重現它?是否有調用drawRect()或任何Open GL調用?如果您以編程方式閱讀contentScaleFactor是1嗎?另外,你有沒有看過使用UIView中的convertPoint:fromView:方法? – IanStallings

+0

那麼庫只是調用coords的方法,所以它要麼是錯誤的,要麼是錯誤地創建了UIView。如果您發佈代碼告訴我如何獲得主UIView(或所有UIViews,以便我可以檢查它們)並檢查相關屬性,您可以獲得賞金! –

+0

要做到這一點,並打印出每個視圖的細節,我已經使用了這個類別:https://gist.github.com/nskboy/877593。這個特別的增加了每個子視圖的縮進。然後您可以修改它以將特定屬性輸出到調試器輸出。你不需要一定使用這個類別,它只是幫助下一步。 – IanStallings

回答

0

我在我的glkview應用程序中遇到了相反的情況。我使用screen-> scale屬性來轉換tap coords。所以你所擁有的是(正如我懷疑的)是以下情況之一:(a)在你的故事板中有一些爲你的視圖設置的屬性(檢查它們全部)(b)你的設備提供了這種佈局(什麼是iPad btw)?

稍後會發布更多詳細信息。

0

有一些技術錯誤,也許你不仔細閱讀蘋果文檔。

1)你不能啓用/ disaber視網膜:視網膜是在硬件和iOS可以正確使用它,你只能使用它。 (在某些情況下,你可以調整你的代碼設備)

2)比例因子很少,應使用(讀蘋果doscs),並只能在蘋果的願景一般涉及到自定義繪製

3)你應該專門的代碼在視網膜硬化和非視網膜中行爲不同。 4)像素和座標是LOGICAL座標,所以右下角的像素總是在y = 1024 x = 768。

4)iPad2上的分辨率不能達到2048像素。

我不知道你使用了哪個庫,但STD行爲是不同的。

相關問題