преобразование применяется только к переработанным представлениям в UICollectionView при применении в cellForItemAt - PullRequest
0 голосов
/ 13 января 2019

Не уверен, что мне здесь не хватает. Я переворачиваю свой UICollectionView, чтобы достичь первого стиля, ожидаемого от списков сообщений чата. Моя проблема возникает, когда я пытаюсь повернуть ячейки сообщений. Я использую преобразование

cell.transform = CGAffineTransform(a: 1, b: 0, c: 0, d: -1, tx: 0, ty: 0)

в

collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell

Проблема в том, что первая партия сообщений не применяет преобразование и обрабатывает изображение вверх ногами, но если я прокручиваю вверх, новые сообщения отображаются с преобразованием и располагаются правой стороной вверх. Когда я прокручиваю назад, исходные сообщения тоже загружаются правильно. Похоже, что мое преобразование применяется только к переработанным представлениям, что мне нужно сделать, чтобы оно применялось к новым и переработанным представлениям?

1 Ответ

0 голосов
/ 14 января 2019

Вам необходимо предоставить свойство transform через атрибуты макета. Представление коллекции применяет все атрибуты к ячейке обычно после получения ячейки из ее источника данных. См. https://developer.apple.com/documentation/uikit/uicollectionviewlayoutattributes для всех возможных атрибутов, поддерживаемых атрибутами макета.

Не рекомендуется изменять один из этих атрибутов с помощью кода, где-то еще. Если вы создали свой собственный класс макета, должно быть легко установить свойство transform. Если вы используете UICollectionViewFlowLayout, вам, скорее всего, придется создать его подкласс.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...