记录关于如何不降下键盘刷新collectionView

我们可能会遇到一种需求,在tableView中的cell上面有个自适应的输入框,随着文字的输入,换行和cell的高度变化是必然的,但是cell的高度变化需要修改cell的高度才能生效,这时候,我们可以在文字变化后调用一下方法,cell的高度就会对应变化了(前提是cell的控件布局是自适应的)

      tableView.beginUpdates()
      tableView.endUpdates()

而在collectionView中,也有对应的方法

         self?=.collectionView.performBatchUpdates({
         })

之所以有这个话题,是因为如果我们调用了诸如reloadItems,reloadData之类的刷新方法,就需要去管理第一响应。你会发现,在刷新后,你调用becomeFirstResponder是不生效的,键盘并没有上来。需要延时,并且调用两次才能生效。这之中涉及到响应链和keywindow的问题。并且这样会导致键盘有个起来和落下的过程。而且会导致无法连续删除。而采用update的更新方式就不存在这个问题,当前输入框的键盘不会有任何变化(不需要在更新方法里面或外面调用任何方法)。也不会因为刷新而产生闪烁效果。正常刷新会有闪烁效果。
附一个解决刷新闪烁的方法.(performBatchUpdates不存在闪烁问题)

      collect.delaysContentTouches = false

随笔记录

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 综述 键盘遮挡问题,应该是 RN 中常见的了,网上有很多参考文章.但是这次开发的页面中涉及到多行输入框的问题。键盘...
    黑羽肃霜阅读 8,435评论 1 1
  • 1.badgeVaule气泡提示 2.git终端命令方法> pwd查看全部 >cd>ls >之后桌面找到文件夹内容...
    i得深刻方得S阅读 10,214评论 1 9
  • 2017.02.22 可以练习,每当这个时候,脑袋就犯困,我这脑袋真是神奇呀,一说让你做事情,你就犯困,你可不要太...
    Carden阅读 5,199评论 0 1
  • iOS总结 1.网络封装, 各种加载效果,实现界面先要考虑刷新加载 2.自定义控件坐标用父坐标来写,不要写死 3....
    WHZ闹哪样阅读 4,594评论 2 8
  • 物理内存虚拟内存的关系、堆栈、 比如工作环境,薪资待遇,要不要加班,主要工作内容,要用到什么技术,团队有没有什么缺...
    nlpjoe阅读 4,973评论 0 8