请选择 进入手机版 | 继续访问电脑版
  • 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - 顶部固定有 SupplementaryView 的 JSQMessagesViewController

[复制链接]
菜鸟教程小白 发表于 2022-12-11 16:36:22 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我已经覆盖了 collectionView:viewForSupplementaryElementOfKind:atIndexPath: 以快速显示我的 JSQMessagesViewController 子类的标题 View 。这确实很好用,但标题 View 会随着聊天滚动,我希望将其固定在顶部。

Apple 在 iOS 9 中引入了 sectionHeadersPinToVisibleBounds 属性,这应该有固定的标题 View ,但由于某种原因,这在 JSQMessagesViewController 子类中不起作用。我已经添加了 self.collectionView.collectionViewLayout.sectionHeadersPinToVisibleBounds = true 查看DidLoad()

我尝试的另一个解决方案(来自这篇文章 How to make Supplementary View float in UICollectionView as Section Headers do in UITableView plain style )是继承 JSQMessagesCollectionViewFlowLayout,这几乎奏效了。向上滑动时,标题 View 固定在顶部,聊天消息推送到标题 View 下方。但是,当我尝试向下滑动时,当应用崩溃时,我的控制台中会收到以下错误:


有没有人以同样的方式为 JSQMessagesViewController 成功修复了标题 View ?

我改变的方法是 shouldInvalidateLayoutForBoundsChange: 我返回的是,

和 layoutAttributesForElementsInRect: 我改为:



Best Answer-推荐答案


我上面提供的代码是可以的。我认为导致崩溃的原因是我在 JSQMessagesViewController 子类中覆盖了 collectionView:collectionViewLayout:referenceSizeForHeaderInSection: 函数。我注释掉了该函数,而是在 JSQMessagesLoadEarlierHeaderView 中的 kJSQMessagesLoadEarlierHeaderViewHeight 常量中设置了高度。是的,我劫持了 LoadEarlierHeaderView 以显示我自己的自定义标题 View 。

现在,标题 View 固定在顶部,显示了我的自定义标题 View ,并且没有任何崩溃。

关于ios - 顶部固定有 SupplementaryView 的 JSQMessagesViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37499713/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap