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