2011-10-16 70 views
1

我在底部創建了一些需要用戶輸入的文本框。有什麼方法可以在鍵盤出現時自動推高視圖?當鍵盤出現時,視圖能夠被推高嗎?

+1

您可能需要查看[TPKeyboardAvoiding](https://github.com/michaeltyson/TPKeyboardAvoiding),這是一種用於移動文本字段以避免iOS中的鍵盤出現問題的通用解決方案。 – 2011-10-16 08:17:02

回答

1

使用視圖的-contentoffset屬性。

2

請參閱Apple的Moving Content That Is Located Under the Keyboardthis implementation,其基於Calculating Area Covered by Keyboard

基本上你必須在UIScrollView上掛載你的視圖並添加與鍵盤相同高度的底部內容插入。然後使用setContentOffset滾動:animated :.這是一個可以重複使用的通用解決方案。

更簡單但非通用的方法是,如果在視圖底部有足夠的空間而沒有可編輯的控件,則只需滾動到每個編輯框的固定位置即可。

+3

請注意,您不必使用UIScrollView。您可以減少主視圖中心屬性的y值,然後在鍵盤隱藏時再次增加y值。滾動視圖很好,因爲它可以讓用戶決定在鍵盤出現時看到界面的其他部分,但是它增加了一點複雜性。 – morningstar

+0

但是,我正在爲我的程序使用UIViewController,可以在這種環境下解決問題嗎? –

+0

@morningstar如果您鏈接到或提供了一些關於中心屬性更改位置/方式的代碼/屏幕截圖,那就太好了。 – Danny