0

我正在制作一个自定义贴纸包。它是一个 iMessage 扩展应用程序。我正在继承 UICollectionView 而不是使用基本的 MSMessagesViewController。因此,仅当我在展开视图中选择 V 形图标以更改回紧凑视图时,才会发生这种情况。发生了什么事(您可以在下面的 gif 中看到)是贴纸放置在视图中并且似乎设置在它们的位置,但是在一瞬间之后,它们似乎重新调整了它们的位置......CollectionView 中有什么东西吗?我应该做些什么来防止这种情况?

我开始认为这可能是一个错误,因为包含文本字段、iMessage 应用程序抽屉图标、心形图标和相机图标的标题栏似乎被截断了大约与班次相同的数量。

在此处输入图像描述

这是来自github的代码

4

1 回答 1

1

您的代码的问题contentInset在于您layout()调用中的 collectionView 与原始位置相差 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)
于 2017-09-15T08:00:17.527 回答