天天看點

在iOS虛拟鍵盤上添加動态隐藏按鈕

       最近兩周和團隊做一個關于地理圍欄技術的公交實時查詢項目,為了給使用者比較良好的傳遞,想在鍵盤上添加一個按鈕,實時根據鍵盤不同高度變換按鈕位置,再不做輸入的時候點選按鈕能夠隐藏鍵盤,這種方式在很多軟體上都有展現,然後在網上查閱了關于檢測鍵盤高度一些相關知識,以下是一個Demo,代碼有很多需要優化地方,僅供需要者參考;

先看效果:

首先是我們在ViewDidLoada()中注冊了兩個通知,[NSNotificationCenterdefaultCenter],檢測鍵盤動态,一個是鍵盤将要彈出的時候,另一個是鍵盤将要退出時候鍵盤的資訊

檢測鍵盤消息一個六種,根據字面意思差不多都能說明函數作用

UIKeyboardWillShowNotification     通知将要釋出時候顯示鍵盤 

UIKeyboardDidShowNotification     通知釋出後立即顯示鍵盤

UIKeyboardWillHideNotification       通知釋出前撤銷鍵盤

UIKeyboardDidHideNotification       通知釋出後撤銷鍵盤

UIKeyboardWillChangeFrameNotification      通知釋出前迅速變化的架構的鍵盤。

UIKeyboardDidChangeFrameNotification      通知釋出後立即改變在鍵盤的架構。

NSLog(@"%@",NSStringFromSelector(_cmd));是我特意加上去的,它能在控制台顯示列印出目前程式所調用的函數,我在下面每個函數都加了這一句,當我進行不同操作的時候,列印出被調用函數名,在調試程式時候比較适用吧;

注冊消息通知後,實作通知所響應的方法

在這個函數方法中值得探讨的是關于鍵盤所包含資訊,因為每一次鍵盤彈出的時候也是動畫形式彈出,他的坐标位置大小包含在userInfo的字典中,現在我用

NSLog(@"-->info:%@",info);列印出info對象,這些資訊都可以在不同存儲類型,取值的時候注意取值方式,此處隻是提一提,希望以後有時間在做探讨,

在這一段代碼上,後面注釋了5行,因為打算當鍵盤推出的時候,按鈕從視圖上移除,或者釋放按鈕,但是都導緻了應用程式崩潰,後來就沒有釋放和移除操作了

     本文轉自新風作浪 51CTO部落格,原文連結:http://blog.51cto.com/duxinfeng/1208706,如需轉載請自行聯系原作者

繼續閱讀