在iOS7手势返回时如果不做任何处理,键盘需要在完成返回时才关闭。看着总觉得不爽,奉上解决办法, 最开始我继承
UINavigationController写一个子
NavigationController,在里面实现手势委托函数:
-
(
BOOL
)gestureRecognizerShouldBegin:(
UIGestureRecognizer
*)gestureRecognizer
{
UIWindow * window = [ UIApplication sharedApplication ]. keyWindow ;
if (window ) {
[window endEditing : YES ];
}
return YES ;
}
{
UIWindow * window = [ UIApplication sharedApplication ]. keyWindow ;
if (window ) {
[window endEditing : YES ];
}
return YES ;
}
这下感觉舒服了,我觉得我有严重的强迫症。
有一天我突然看到有页面键盘能跟着关闭页面动画。我又不爽了,于是我研究对比两个之间的差别,没发现。
于是百度,无果。翻墙google(现在goagentX不稳定,经常用不了,鄙视xxx)。
英语不好 就输入ios7 swipe back keyboard 果然stack overflow上有答案:
- (void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
UIView *keyboardSuperview = self.textField.inputAccessoryView.superview;
[self.transitionCoordinator animateAlongsideTransitionInView:keyboardSuperview
animation:
^(id<UIViewControllerTransitionCoordinatorContext]]> context) {
CGRect keyboardFrame = keyboardSuperview.frame;
keyboardFrame.origin.x = self.view.bounds.size.width;
keyboardSuperview.frame = keyboardFrame;
}
completion:nil];
}
- (void)viewDidLoad
{
[super viewDidLoad];
self.textField.inputAccessoryView = [[UIView alloc] init];
}
有点麻烦,还是不爽,继续找找
github上面有个TapKeyboardPop的东东
https://github.com/cotap/TAPKeyboardPop 可以用cocoaPods安装
使用的时候在文件中
#import <TAPKeyboardPop/UIViewController+TAPKeyboardPop.h>
恩,到此结束。