CollectonView "readjusts" 载入视图后的原点
CollectonView "readjusts" origin after loaded into view
我正在制作自定义贴纸包。这是一个 iMessage 扩展应用程序。我继承了 UICollectionView 而不是使用基本的 MSMessagesViewController。所以只有当我 select 将展开视图中的人字形图标变回紧凑视图时才会发生这种情况。发生了什么(你可以在下面的 gif 中看到)是贴纸放置在视图中并且似乎设置在它们的位置,但一瞬间之后,它们似乎重新调整了它们的位置......CollectionView 中有什么东西吗我应该做些什么来防止这种情况发生?
我开始认为这可能是一个错误,因为包含文本字段、iMessage 应用程序抽屉图标、心形图标和相机图标的 header 栏似乎 cut-off 关于与班次相同的金额。
您的代码存在的问题是,您的 layout()
调用中的 collectionView 的 contentInset
与原始位置相差 6 个像素。这就是为什么在动画结束后动画调整6像素的原因。
只需将 StickerCollectionVC
内的 layout()
调用中的 UIEdgeInsets()
更改为:
self.collectionView?.contentInset = UIEdgeInsets( top: screenW * 0.1 - 6,
left: screenW * 0.1,
bottom: 20 + (screenW * 0.1),
right: screenW * 0.1)
我正在制作自定义贴纸包。这是一个 iMessage 扩展应用程序。我继承了 UICollectionView 而不是使用基本的 MSMessagesViewController。所以只有当我 select 将展开视图中的人字形图标变回紧凑视图时才会发生这种情况。发生了什么(你可以在下面的 gif 中看到)是贴纸放置在视图中并且似乎设置在它们的位置,但一瞬间之后,它们似乎重新调整了它们的位置......CollectionView 中有什么东西吗我应该做些什么来防止这种情况发生?
我开始认为这可能是一个错误,因为包含文本字段、iMessage 应用程序抽屉图标、心形图标和相机图标的 header 栏似乎 cut-off 关于与班次相同的金额。
您的代码存在的问题是,您的 layout()
调用中的 collectionView 的 contentInset
与原始位置相差 6 个像素。这就是为什么在动画结束后动画调整6像素的原因。
只需将 StickerCollectionVC
内的 layout()
调用中的 UIEdgeInsets()
更改为:
self.collectionView?.contentInset = UIEdgeInsets( top: screenW * 0.1 - 6,
left: screenW * 0.1,
bottom: 20 + (screenW * 0.1),
right: screenW * 0.1)