2014-09-20 35 views
1

我的問題:
我想開發一個自定義的鍵盤爲iOS 8我得到的按鈕工作和所有的,但我想知道如何做不同的設置是否它是iPad還是iPhone,以及如何在鍵盤應該亮或暗時更改外觀。我可以爲任何東西獲得一個.xib,或者是否存在某種詭計?不同的.xib適用於不同的屏幕尺寸和外觀? - iOS 8鍵盤擴展

實施例:
的.xib爲iPad鍵盤肖像光
的.xib爲iPad鍵盤景觀燈光
的.xib爲iPad鍵盤肖像黑暗
的.xib爲iPad鍵盤景觀黑暗
的.xib爲iPhone鍵盤人像燈
等等等等...


我想你可以檢查的外觀鍵盤這種方式,然後相應地更改按鈕圖像,但隨後在鍵盤上的iPad爲例(不同的佈局),不同的是我的問題...

if (self.textDocumentProxy.keyboardAppearance == UIKeyboardAppearanceDark) { 

在此先感謝。

回答

0

你會想要通過檢查keyboardAppearancetextDidChange(textInput: UITextInput)來改變你的鍵盤主題。只需循環所有按鈕並應用適當的文本/背景顏色即可。

我決定爲我的鍵盤使用一個.xib文件。您可以使用Regular w Regular h size類對iPad進行優化,但無法在橫向上針對iPhone進行優化,因爲它在縱向上總是相同(Compact w Compact h)。因此,我的鍵盤設置爲viewDidLayoutSubviews以檢測鍵盤的高度和寬度,然後將這些值與特徵集合大小類別一起使用,以優化這些不同的屏幕大小和方向。你也可以創建許多不同的xib,如果你能用一個xib去掉,我不會推薦它。

+0

好的,謝謝。我設法讓主題功能起作用。但是因爲我對尺寸類不熟悉,所以我想爲iPhone設計一個.xib,而爲iPad設計一個.xib。你知道我如何設置它,以便正確加載它們嗎?再次感謝。 – ifraaank 2014-09-21 15:51:15

+0

在這種情況下,您需要根據設備大小有條件地加載相應的xib。您應該能夠在'viewDidLoad'中檢測大小類別(僅適用於iPad的Regular w常規h),然後裝入任何xib都是正確的。如果'viewDidLoad'太早,你需要在生命週期的後面檢查,最糟糕的情況是'viewDidAppear'。您只需查詢'self.traitCollection.horizo​​ntalSizeClass'和'verticalSizeClass'。 – Joey 2014-09-21 19:29:20