键盘出现时 UIScrollView “滞后”

Posted

技术标签:

【中文标题】键盘出现时 UIScrollView “滞后”【英文标题】:UIScrollView is "lagging" when keyboard appears 【发布时间】:2015-10-20 12:56:48 【问题描述】:

搜索了几个小时后,我仍然遇到了使用 UIScrollView 和键盘的问题。 当键盘显示时,我正在通过 keyboardWillShow 方法调整具有 contentInset 属性的 ScrollView 的大小。

我正在使用具有良好约束的自动布局

func keyboardWillShow(notification:NSNotification)

   var userInfo = notification.userInfo!
   var keyboardFrame:CGRect = (userInfo[UIKeyboardFrameBeginUserInfoKey] as! NSValue).CGRectValue()  
   keyboardFrame = self.view.convertRect(keyboardFrame, fromView: nil)  
   var contentInset:UIEdgeInsets = self.ScrollView.contentInset
   contentInset.bottom = keyboardFrame.size.height
   self.ScrollView.contentInset = contentInset

这是 Xcode 问题还是我做错了什么?

提前致谢

【问题讨论】:

“滞后”是什么意思? 当我向上和向下滚动时,它没有没有键盘那么快,我真的不知道如何描述它 您是否在 scrollViewDidScroll 或滚动时调用的任何其他委托方法中执行任何操作? 【参考方案1】:

首先,您可能需要检查您是否在 ios 模拟器中打开了“慢速动画”。

如果不是一个可能的原因是您的 Mac 的速度。通常每个应用程序在实际设备上运行得更快,然后在模拟器上运行。我建议您在真实设备上测试构建。

【讨论】:

慢速动画没有被检查,但你是对的;它是模拟器,我没想到模拟器会比设备慢。谢谢! 没问题,你是一个很好的例子,说明你应该如何提问。你表现出了努力,并明确了你的问题是关于什么的。 :)

以上是关于键盘出现时 UIScrollView “滞后”的主要内容,如果未能解决你的问题,请参考以下文章

在 iOS11 键盘后面扩展 UIScrollView 插图

键盘出现时的UIScrollView

键盘出现时如何滚动 UIScrollView?

UIScrollView 动画滞后

UIScrollView 在键盘关闭时停止滚动

使用带有动态渲染项目的 UIScrollView 消除滚动滞后