如何同步动画的内容偏移变化和隐藏/显示键盘



如何同步隐藏/显示键盘动画与tableView.contentOffset动画?在我的程序中,当我点击tableView的细胞时,这个tableView.contentOffset改变,细胞的textField成为第一响应者。我尝试同步这个动作的动画,但没有结果。

我喜欢的解决方案:

 [UIView animateWithDuration:0.2
         animations:^{[textView becomeFirstResponder];
                      tableView.contentOffset = CGPointMake(0, 100.0f);}
         completion:^(BOOL finished){}];

但是仍然有一个问题:当我第一次调用这个方法时,键盘从位置出现,而不是像往常一样在底部。当第二次调用这个方法时。我如何修复这个bug?

我假设你在你的项目中使用自动布局。假设你已经在UITableView上应用了上、右、下、左约束,当键盘向上时,你只需要将底部约束更新为键盘高度,那时sdk UITextField将自动滚动到它在UITableView上可见的位置,为此你不需要设置内容偏移量。

你可以为"UIKeyboardWillShowNotification"添加通知所以在显示键盘之前UITableView的高度会通过更新底部约束得到降低然后控件会在UItextField上运行所以这个会自动可见

最新更新