我正在使用this示例项目,我想要做的是,当您在视图上放置UITextField
时,当键盘下方的UITextField
时,视图会移动一点点。
我使用了this项目中的TPKeyBoardAvoidingScrollView
类。然而,当我点击UITextField
时,视图向上移动,一切都很好但是当我点击背景时,它不是恢复正常的屏幕尺寸而是解雇键盘,而是回到第一个视图而不是粘贴在我们那一刻的观点。
当弹出键盘时,你可以左右滚动,任何想法我怎么解决这个问题? Here是我的项目,我将它们加在一起。
答案 0 :(得分:2)
在TPKeyboardAvoidingScrollView.m中有一个方法(keyboardWillHide :),当键盘要隐藏时会调用它。在该方法中,scrollview的内容偏移设置为CGPointZero,因此您的scrollview将转到第一个视图控制器。
- (void)keyboardWillHide:(NSNotification*)notification {
_keyboardRect = CGRectZero;
_keyboardVisible = NO;
// Restore dimensions to prior size
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationCurve:[[[notification userInfo] objectForKey:UIKeyboardAnimationCurveUserInfoKey] intValue]];
[UIView setAnimationDuration:[[[notification userInfo] objectForKey:UIKeyboardAnimationDurationUserInfoKey] floatValue]];
self.contentInset = _priorInset;
//self.contentOffset = CGPointZero;//Replacing this with below line
self.contentOffset = CGPointMake(self.contentOffset.x, 0);
[self setScrollIndicatorInsets:self.contentInset];
_priorInsetSaved = NO;
[UIView commitAnimations];
}
在编辑文本字段时停止滚动 -
- (void)keyboardDidShow:(NSNotification*)notification {
[self setScrollEnabled:NO];
//existing code
}
- (void)keyboardWillHide:(NSNotification*)notification {
[self setScrollEnabled:YES];
//existing code with modification of content offset
}
请注意,这可能会影响您使用TPKeyboardAvoidingScrollView对象的其他视图。