我遇到了一个非常奇怪的问题,我还不知道如何解决它,我已经连续工作了将近两天(除了吃饭、睡觉、喝咖啡和吸烟)。
我有的:
我的UIScrollView
视图控制器内部有一个,包含一定数量的文本字段和一个UICollectionView
. 通过一个按钮,我打开了另一个视图控制器,用于将新数据添加到集合视图中。添加新数据项后,回到我的第一个视图控制器,我调用invalidateIntrinsicContentsize
myUIScrollView
和 myUICollectionView
来调整它们的大小以适应它们的内容(我使用 Autolayout 并让它们都拥抱它们的内容)。在这两个视图上,我都实现了这些方法以很好地适应它们的内容,这部分工作得很好。
我的问题是:
UICollectionView
如果我以刚刚描述的方式添加数据,并且如果我处于横向模式,问题就开始了:在返回到我的初始视图控制器并更新内在内容大小后,我的内容 UICollectionView
被替换- 在这样的情况下被替换一种方式,在切换到数据添加视图之前内容的滚动位置UIScrollView
现在变成了固定内容偏移量。如果我现在向上滚动,在切换到数据添加视图控制器之前,我可以通过滚动到最大的位置到达内容的位置。
图片(每个人都喜欢):
为了说明这种情况有点难以解释,我附上了两张图片。红色是滚动视图的整个内容区域,深绿色是内容,两者重叠的地方颜色是橄榄色。的可见部分UIScrollView
显示在突出显示的边框区域中。
在更新数据之前,内容应该是:
(来源:grubbrother.com)
更新数据和更新 UI 后,内容被之前的滚动位置 / 取代contentOffset
:
(来源:grubbrother.com)
请帮我解决这些奇怪的事情。不幸的是,我的截止日期很紧,需要继续进行该项目。尽管如此,我真的不知道如何解决这个问题,甚至不知道是什么原因造成的——我完全不知道。