在iPhoneX上键盘与输入框之间会存在一个间隙
尝试在键盘弹出事件中修正输入框的位置
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];
- (void)keyboardWillShow:(NSNotification *)aNotification {
//获取键盘的高度
NSDictionary *userInfo = [aNotification userInfo];
NSValue *aValue = [userInfo objectForKey:UIKeyboardFrameEndUserInfoKey];
CGRect keyboardRect = [aValue CGRectValue];
CGFloat height = keyboardRect.origin.y;
[UIView animateWithDuration:0.3 animations:^{
toolBar.frame = CGRectMake(0, height-toolBar.height, toolBar.width, toolBar.height);
}];
}
没有起作用,间隙依然存在。
解决方案:
在viewDidLoad里把 self.view 的 insetsLayoutMarginsFromSafeArea 设置为NO,消除iPhoneX的安全区域边界对界面展示的影响。
- (void)viewDidLoad {
[super viewDidLoad];
self.view.insetsLayoutMarginsFromSafeArea = NO;
}
问题解决。