Источник "readjusts" CollectonView после загрузки в представление

Я делаю нестандартную наклейку. Это приложение iMessage Extension. Я создаю подкласс UICollectionView, а не использую базовый MSMessagesViewController. Так что это происходит только тогда, когда я выбираю значок шеврона в расширенном представлении, чтобы вернуться к компактному виду. То, что происходит (вы можете увидеть в gif ниже), это то, что стикеры размещены в представлении и, кажется, установлены в своем местоположении, но через долю секунды они, кажется, перенастраивают свои позиции... Есть ли что-то в CollectionView, что Я должен делать, чтобы предотвратить это?

Я начинаю думать, что это может быть ошибкой, потому что строка заголовка, содержащая текстовое поле, значок на панели приложения iMessage, значок сердца и значок камеры, кажется, обрезана примерно на столько же, сколько смещение.

введите описание изображения здесь

вот код из github

1 ответ

Решение

Проблема с вашим кодом в том, что contentInset для вашей коллекции 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)
Другие вопросы по тегам