我在iOS 8上遇到一个奇怪的错误,它在选择文本字段后尝试同步动画与键盘同步。 具体来说,我正在尝试获取键盘的高度,以便在注册keyboardwillshow通知后通过使用以下代码知道移动文本字段的距离:
- (void)keyboardWillShow:(NSNotification *)notification
{
CGSize keyboardSize = [[[notification userInfo] objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size;
self.keyboardHeight = keyboardSize.height;
[self moveToolbarUp];
}
-(void)moveToolbarUp
{
self.keyboardExpanded = YES;
CGRect frame = self.toolbar.frame;
DLog(@"keyboard height now:%f",self.keyboardHeight);
frame.origin.y = (self.view.frame.size.height-toolbarHeight-self.keyboardHeight);
[UIView animateWithDuration:0.1 animations:^{
self.toolbar.frame = frame;
}];
}
但是,如果我尝试在keyboardwillshow方法中设置断点,我可以看到键盘在调用方法时已经一直向上,因此动画被延迟(键盘弹出,然后是大约二,左右,文本字段如下)。 还有其他人遇到过这个错误吗?我在iPhone 5s,iOS 8.0.2上运行。
谢谢!
答案 0 :(得分:0)
这不是错误。事实是您可以删除您的animateWithDuration
电话。在iOS 8中,keyboardWillShow:
在键盘的动画中称为。你不必同步任何东西;你所做的任何事情都会自动成为动画的一部分。