iOS:出现键盘时触发什么事件

标签 ios objective-c swift uicollectionview

我正在为我正在处理的项目使用 JSQMessagesController,并在 Github 页面上打开了一个问题,但是在与作者协商后我们无法解决该问题。

我有一个由消息列表填充的 collectionView,但是当第一次加载 View 时,顶部消息从屏幕顶部被截断,当显示和关闭键盘时, View 按预期显示下面:

demonstrates broken message controller

当显示键盘时,显然会触发一个事件,使布局重新生效,但它是什么?我尝试了以下步骤:

self.collectionView.collectionViewLayout.invalidateLayout()
self.collectionView.reloadData()

但这并没有解决问题 - 任何见解都将不胜感激。

编辑:经过测试,当我为 View 设置背景图像时, View 层次结构似乎无效:

backgroundView = UIImageView(frame: CGRect(x: 0, y: 0, width: view.frame.width, height: view.frame.height))
backgroundView.image = UIImage(named: "background")
self.view.insertSubview(backgroundView, atIndex: 0)

删除这些行会消除不需要的顶部边距,但是调出键盘仍会解决破坏的约束。

最佳答案

您是否尝试过更改 Collection View 的插图?像这样的东西:

[self.collectionView setContentOffset:UIEdgeInsetsMake(64.0, 0.0, 0.0, 0.0)];

关于iOS:出现键盘时触发什么事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28366600/

相关文章:

ios - iPhone 7 Plus 背景图片大小

objective-c - 使用来自字符串的 typedef 枚举类型进行切换

objective-c - iOS:访问 XML 数据记录的简便方法?

iphone - 使用 coredata 准备应用发布

ios - 单击 CollectionViewCell 中的按钮

ios - 线程 1 : exc_bad_instruction(code=exc_1386_invop, 子代码 = 0x0)

objective-c - 使用数码表冠缩放图像 (iOS 8.3)

ios - 让 AVPlayer 填满整个屏幕

ios - QML 5.3 iOS编译纯QML app

ios - 从不正确的线程访问的 Realm