加载到视图后CollectonView“重新调整”原点

时间:2017-08-04 17:10:10

标签: swift uicollectionview imessage-extension mssticker

我正在制作定制贴纸包。这是一个iMessage Extension应用程序。我是UICollectionView的子类,而不是使用基本的MSMessagesViewController。所以只有当我在展开视图中选择V形图标以更改回紧凑视图时才会发生这种情况。发生了什么(你可以在下面的gif中看到)是贴纸放在视图中并且看起来设置在它们的位置,但是在一瞬间之后,它们似乎重新调整它们的位置......在CollectionView中是否存在某些内容我应该这样做以防止这种情况?

我开始认为它可能是一个错误,因为包含文本字段,iMessage应用程序抽屉图标,心脏图标和相机图标的标题栏似乎与转换的数量相同。< / p>

enter image description here

here is the code from github

1 个答案:

答案 0 :(得分:1)

您的代码存在的问题是,contentInset来电中您的collectionView的layout()与原始位置相距6个像素。这就是动画完成后动画调整6像素的原因。

只需将UIEdgeInsets()内的layout()来电中的StickerCollectionVC更改为:

self.collectionView?.contentInset = UIEdgeInsets(   top: screenW * 0.1 - 6,
                                                            left: screenW * 0.1,
                                                            bottom: 20 + (screenW * 0.1),
                                                            right: screenW * 0.1)