iOS上鍵盤自適應

2021-06-12 22:42:09 字數 1200 閱讀 7722

第一種,

臨時調整視窗中各個檢視的大小,使得鍵盤從下向上占領的區域空白。鍵盤的高度(keyboard.size.height)是一定的,將檢視中所有內容所在區域的y值減小到y-keyboard.size.height。

該方法有個侷限,如果所有內容之和大於視窗減去鍵盤高度的話,該方法將不能用。

第二種,

將視窗中所有檢視嵌入進乙個滾動檢視物件(uiscrollview)中。在鍵盤出現時,你將輸入框滾動到合適的位置,調整一下滾動檢視的內容區域。

去實現的,邏輯過程如下:

1、根據通知的字典資訊userinfo得到鍵盤的size。

2、根據鍵盤的size中的height值,調整滾動檢視內容底部的inset。

3、滾動目標檢視即檔案輸入框進入檢視中。

簡要的**如下:

1、實現兩個委託方法,用於指定輸入框物件。

- (void)textfielddidbeginediting:(uitextfield *)textfield

- (void)textfielddidendediting:(uitextfield *)textfield

2、註冊通知的觀察者

- (void)registerforkeyboardnotifications

3、實現鍵盤顯示通知的selector中的方法

// called when the uikeyboarddidshownotification is sent.

- (void)keyboardwasshown:(nsnotification*)anotification

}4、實現鍵盤消失通知的方法

// called when the uikeyboardwillhidenotification is sent

- (void)keyboardwillbehidden:(nsnotification*)anotification

這個方法調整內容底部的inset的值使得輸入框不被鍵盤區域遮蔽的。還可以換種方法實現。

第三種,

擴充套件內容檢視的高度,滾動文字輸入框物件進內容檢視。

將keyboardwasshown:重寫。

- (void)keyboardwasshown:(nsnotification*)anotification

自適應iOS的不同鍵盤高度

from 在ios 5中,鍵盤的高度是會變化的,比如切換到中文輸入法時會在鍵盤上方多出一層候選字區域,如下圖 因此在使用者輸入場景下,布局的美觀和可用性可能受到鍵盤高度變化的影響,因此需要動態適應鍵盤高度。解決方案是監聽鍵盤呼出事件的訊息 nsnotificationcenter defaultce...

鍵盤自適應高度

在遇到有輸入的情況下。由於現在鍵盤的高度是動態變化的。中文輸入與英文輸入時高度不同。所以輸入框的位置也要做出相應的變化 pragma mark keyboardhight void void void registerforkeyboardnotifications 實現當鍵盤出現的時候計算鍵盤的高...

iOS開發中鍵盤自適應的解決辦法

1.在viewdidload中新增通知 鍵盤將要顯示時候的通知 nsnotificationcenter defaultcenter addobserver self selector selector keyboardup name uikeyboardwillshownotification o...