使用UIKit Dynamics时如何调整contentOffset?
求助:UIKit Dynamics聊天视图手动调整contentOffset异常问题
已提供复现示例代码。
我正在开发一款类似Messages.app的聊天视图,通过UIKit Dynamics实现了消息的弹性动效。查阅所有公开资料后,目前实现已基本正常,但仍存在一个问题——手动调整contentOffset时会出现各种异常。
该聊天视图需要调整滚动偏移量以实现多种功能:
- 加载上方历史消息时维持垂直滚动位置
- 新增消息时保持底部偏移
- 通过按钮或链接消息编程滚动到底部
但进行任何手动偏移调整时,问题便会出现:
- 情况较好时,部分单元格属性互换、顺序错乱
- 最坏情况下,动效完全失控,出现未定义行为,甚至消息完全消失
我已尝试了所有能想到的方法,包括在偏移调整前后返回正常的流式布局属性,但仍未解决问题。
以下是问题示例GIF,展示了使用scrollToItem(at: lastIndexPath)后,编号1-10的消息出现顺序错乱的情况:
有没有人成功在使用UIKit Dynamics时通过代码调整偏移量?希望能得到相关指导。
内容的提问来源于stack exchange,提问作者Oscar Apeland
相关产品推荐
相关产品推荐

