Я разработал пользовательский UICollectionViewLayout, чтобы обрабатывать некоторые расширенные требования к макету в приложении для клиентов, что похоже на работу очень хорошо. Пока я не начну использовать анимацию.Пользовательские проблемы с анимацией UICollectionViewLayout
Я потратил некоторое время на работу, чтобы документировать и сделать его более гибким, чтобы его можно было найти здесь: https://github.com/liamnichols/LNCollectionViewPagedLayout.
Его целью является размещение содержимого на новых страницах, если оно не будет соответствовать предыдущей странице, чтобы гарантировать, что содержимое не будет разрезано на две страницы, и похоже, что это нормально.
С самого начала я заметил, что там, где возникают проблемы с анимацией, мне никогда не нужно было использовать анимации, поэтому не пытались исследовать/исправить, но теперь это стало требованием расширения расширения, которое показывает, что еще больше контента и когда Я пытаюсь использовать любые формы методов анимации (, performBatchUpdates:completion:
и т. Д.). Я всегда получаю очень странное поведение от сбоев (view argument is nil
) до испорченных макетов.
В настоящее время мой макет работает путем создания словаря UICollectionViewLayoutAttributes
на prepareLayout
попросив делегат для размера каждой ячейки затем запустить некоторую логику, чтобы увидеть, если он будет соответствовать или нет, и так далее ...
Когда layoutAttributesForElementsInRect:
, он может просто запросить словарь и получить массив атрибутов, релевантных для этого прямоугольника.
Прежде всего, это лучший способ создать этот макет? Мне было очень сложно найти документацию по созданию настраиваемых макетов для удовлетворения моих потребностей и в итоге рассмотрели другие библиотеки с открытым исходным кодом для указателей на то, что делать.
Во-вторых, я не реализовал исходные/окончательные методы атрибутов макета, так как не могу понять, как их правильно использовать. Является ли это причиной того, что у меня возникают проблемы или они не являются обязательными?
Любая помощь или указатели для правильного создания UICollectionViewLayouts
будет замечательной.
Спасибо за указатели, я рассмотрю методы initialLayoutAttributes и посмотрю, как все идет! – liamnichols
Я принимаю это как ответ, так как советы по отладке помогли мне обнаружить, что я читал границы коллекции, когда contentOffset не был CGPointZero .. это приводит к неправильным значениям, заставляющим мой макет испортиться и сбой. Спасибо за советы – liamnichols