所以......当键盘弹出时,我让我的 UIScrollView 向上移动,这很有效......除了它们 UIScrollView 和键盘不同步......首先,键盘弹出,然后是 UIScrollView。
我知道有一种方法可以延迟键盘,以便在视图向上滚动的同时显示出来;我怎么做??我在 viewDidLoad 中试过这个:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];
...我也有这个:
- (void)keyboardWillShow:(NSNotification *)notification
{
[NSTimer scheduledTimerWithTimeInterval:4000 target:self selector:@selector(keyboardWillShow:) userInfo:nil repeats:NO];
}
(我知道,4000 是一个巨大的数字,但我想确保有延迟!!)
此外,当我关闭键盘而不是平滑滚动时,UIScrollView 只是简单地跳回原位而不是放松……有没有合理的方法来解决这个问题?
更新:
明白了...感谢 Steven Fisher 帮助我走上正确的道路...我将所有内容移至keyboardWillShow,并添加了以下代码:
[UIScrollView beginAnimations:nil context:NULL];
[UIScrollView setAnimationDelegate:self];
[UIScrollView setAnimationDuration:.32];
[UIScrollView setAnimationBeginsFromCurrentState:NO];
不知何故,当键盘消失时,这也解决了我的“跳跃”问题!呜呼!