iOS-鍵盤監聽YYKeyboardManager,
如果鍵盤彈出覆蓋了原有的試圖,這種效果並不好,所以我們就要在鍵盤彈出的時候,監聽鍵盤的位置來改變我們一些試圖的位置,如果tableView列表等;在這裡推薦一個大牛ibireme寫的YYKeyboardManager,Git地址:https://github.com/ibireme/YYKeyboardManager;用CocoaPods匯入:pod 'YYKeyboardManager' ,終端 pod install 就可以使用了。
開啟鍵盤監聽
標頭檔引用:#import "YYKeyboardManager.h"
[[YYKeyboardManager defaultManager] addObserver:self];
實現代理
<YYKeyboardObserver>
代理方法
- (void)keyboardChangedWithTransition:(YYKeyboardTransition)transition { [UIView animateWithDuration:transition.animationDuration delay:0 options:transition.animationOption animations:^{ ///用此方法擷取鍵盤的rect CGRect kbFrame = [[YYKeyboardManager defaultManager] convertRect:transition.toFrame toView:self.view]; ///從新計算view的位置並賦值 CGRect textframe = _textField.frame; textframe.size.width = kbFrame.size.width; textframe.origin.y = kbFrame.origin.y - textframe.size.height; _textField.frame = textframe; } completion:^(BOOL finished) { }];}
移除監聽
別忘了在釋放處移除監聽
- (void)dealloc { [[YYKeyboardManager defaultManager] removeObserver:self];}
最後附上一個原Git上項目的: