2014-01-08 48 views
2

用戶界面基本相同,但其中一個用於較小的iPhone屏幕,另一個用於較大的iPad屏幕(用於創建iPad UI的this post)。iPad上的iOS應用僅適用於部分屏幕

在iPhone上,一切都很好。我的按鈕變色(XIB顯示爲藍色,在iPad上顯示爲白色),我的TextField似乎沒有正確連接到我的UIViewController(iPad和iPhone XIB共享相同的控制器),但是,真正的問題是,該應用程序只響應觸摸左上角的一半(實際上沒有測量,但它是關於iPhone的大小)。注意:該應用程序在iPad上顯示全屏。

有了一些測試,我已經確認了以下內容:

  • 這只是我的應用程序的問題,因爲其他應用程序是全屏,沒有任何問題
  • 如果我提出一個小部件(按鈕/ textview)到中心的左邊緣並重新啓動應用程序,該小部件完全工作。如果我將它移到右邊,它根本沒有響應。

在下圖中,綠色框表示應用程序窗口小部件響應觸摸的區域。

在我的常規應用程序設置中,我選擇了Universal,並且成功爲我的iPhone應用程序(LoginPage〜iphone.xib)和iPad(LoginPage〜ipad.xib)的UI創建了一個.XIB文件。

使用XCode 5.0.2。

編輯:我只是意識到,我有這個問題,以及當我用UITableViewController編程創建用戶界面。

Image showing widgets only responding to touch within highlighted section

+0

難道是有一個隱藏的視圖阻止觸摸區域?如果一個視圖響應觸摸事件,那麼它將阻止它下面的任何東西接收觸摸。 – Fogmeister

+0

您是否執行過檢查設備是iPhone還是iPad,並據此選擇相應的.xib? – Jasper

+0

@JasperPol我在棧上讀了一些東西,如果你給它命名〜ipad選擇了正確的。這似乎就是這種情況,因爲我的觀點已經有了足夠的差異,可以將它們區分開來。這只是屏幕沒有響應綠色框區域之外。 – Dulax

回答

1

你的UI內容是沒有尺寸iPad上的全屏另一個視圖中最有可能遏制。它的尺寸可能適合iPhone屏幕,並且沒有進行調整。如果您爲包含這些UI元素的視圖提供背景顏色,或者可能是父項,您可能會看到這一點。如果您使用的是自動佈局,則您需要添加指定該視圖和超級視圖邊緣之間沒有間隙的約束。如果不使用自動佈局,則需要使用自動調整(struts和彈簧)來指定視圖應水平和垂直拉伸,並與所有4個邊保持固定的距離。

對於一些像文本字段這樣的元素沒有出現連接到控制器的問題,也許你沒有把它們連接到xib中。右鍵單擊xib中的文本字段等,看看它們是否顯示它們已連接。如果沒有,連接它們。

+0

在我的XIB的XCode的側邊菜單中,我有一個「View」 。當我展開這個視圖時,我將圖像,4個文本視圖和按鈕與視圖的子視圖保持同一級別。視圖本身的大小設置爲「iPad全屏幕」,這就是視圖覆蓋整個屏幕的原因。有什麼我在這裏做錯了嗎? – Dulax