【发布时间】:2023-03-12 17:45:02
【问题描述】:
我正在将 JSQMessagesController 用于我正在处理的项目并在 Github 页面上打开了一个问题,但是在与作者协商后我们无法解决该问题。
我有一个由消息列表填充的 collectionView,但是当第一次加载视图时,顶部消息会从屏幕顶部截断,当键盘显示并关闭时,视图会按预期显示,如图所示下面:
当显示键盘时,显然会触发一个重新验证布局的事件,但它是什么?我尝试了以下步骤:
self.collectionView.collectionViewLayout.invalidateLayout()
self.collectionView.reloadData()
但这并没有解决问题 - 任何见解都会受到赞赏。
编辑:经过测试,当我为视图设置背景图像时,视图层次结构似乎无效:
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)
删除这些行可以消除不希望的上边距,但是调出键盘仍将解决损坏的约束。
【问题讨论】:
-
需要将UICollectionView顶部约束设置为Top Layout Guide,这样View才能正确放置在UINavigationBar下方
-
您能否提供有关如何执行此操作的答案,以便我接受? :)
-
你在使用 Storyboard 吗?
-
不使用 Storyboard 或 Nib,否则我将使用界面生成器设置约束 - 所有视图约束都已通过框架设置,因此我必须在代码中手动设置它
标签: ios objective-c swift uicollectionview