2014-05-23 71 views
6

有什麼辦法可以獲得UIKeyboard背景顏色?我在我的UIKeyboard上放置了一個配件視圖,並試圖將其顏色與鍵盤背景顏色相匹配。但是,看起來,不同類型的鍵盤有不同的背景顏色。請參閱下面的默認和電子郵件鍵盤截圖。以編程方式獲取UIKeyboard背景顏色

有沒有什麼辦法,我們可以編程的方式找出鍵盤的背景顏色,以便accessoryView的顏色可以改變。

UIKeyboardTypeEmailAddress

UIKeyboardTypeDefault

+0

找到keyWindow,活動視圖,然後拿到了鍵盤的角度,拿到我使用UIKeyboardAppearanceDark跨所有我的應用程序的顏色 – iXcoder

回答

2

你可以做這樣的事情:

UIKeyboardAppearance currentAppearance = yourTextView.keyboardAppearance; 
if (currentAppearance == UIKeyboardAppearanceDark) { 
    // dark 
} 
else if (currentAppearance == UIKeyboardAppearanceDefault) { 
    // default 
} 
else if (currentAppearance == UIKeyboardAppearanceLight) { 
    // light 
} 
+0

。我的問題是,即使有相同的外觀,不同的鍵盤似乎有不同的背景顏色。 – Abhinav

+1

它稍微透明,你的其他視圖可以顯示在它後面,導致色差? – Logan

+0

哪一個稍微透明?第二個鍵盤? – Abhinav

2

我建議你從數碼測色計讓你的鍵盤顏色的RGB,我們使用這個工具Mac或你可以通過任何其他工具獲得它。

然後只需將這些RGB值分配給您的配件視圖並將其顏色與鍵盤相匹配即可。

鍵盤的RGB值是在我看來就像是(63,63,63),你可以使用這個:

[UIColor colorWithRed:63/255.0 green:63/255.0 blue:63/255.0 alpha:1] 

希望它會幫助你。

+0

是的。那就是我所做的。但它似乎適用於電子郵件鍵盤,但不適用於其他類型的鍵盤。請參閱附件截圖。 – Abhinav

+0

我不明白爲什麼電子郵件鍵盤可以正常工作,而不是其他鍵盤。我認爲它應該適用於所有類型的鍵盤我們只改變背景顏色..... – Irfan

0

對於深色背景使用

mytextfield.keyboardAppearance = UIKeyboardAppearanceAlert; 
+0

已經嘗試過這一點。沒有幫助。 – Abhinav

+0

哪個ios sdk使用...?它的工作完全適合我..在ios 7 –

+0

我使用的是iOS 7.1,我認爲它是創建問題的視圖的背景顏色,但不確定。 – Abhinav

相關問題