Как убедиться, что дополнительное представление в UICollectionView всегда отображается с использованием пользовательскогIOS

Программируем под IOS
Ответить
Anonymous
 Как убедиться, что дополнительное представление в UICollectionView всегда отображается с использованием пользовательског

Сообщение Anonymous »

Я пытаюсь реализовать липкие нижние колонтитулы в пользовательском макете (мы не можем использовать потоковый макет). А бывают случаи, когда нижний колонтитул временно скрыт.
Я создаю подкласс UICollectionViewLayout. Я реализовал LayoutAttributesForElements(in rect: CGRect), LayoutAttributesForItem(at indexPath: IndexPath) и LayoutAttributesForSupplementaryView(ofKind elementKind: String, at indexPath: IndexPath) - так что в основном все необходимые переопределения там.

Код: Выделить всё

shouldInvalidateLayout(forBoundsChange newBounds: CGRect)
возвращает true, а метод mustInvalidateLayout(forPreferredLayoutAttributeseferredAttributes: UICollectionViewLayoutAttributes, withOriginalAttributes originalAttributes: UICollectionViewLayoutAttributes) возвращает true, если высота изменяется.

Код: Выделить всё

in rectМетод 
каждый раз возвращает действительные атрибуты нижнего колонтитула. Тем не менее, я заметил странный сбой анимации, если я загружаю представление коллекции вверху, а затем быстро его бросаю. Футер быстро исчезнет при прокрутке вместе с содержимым и сразу же появится в нужном месте. При отладке я заметил, что FinalLayoutAttributesForDisappearingSupplementaryElement вызывается для нижнего колонтитула, и это объясняет, почему срабатывает анимация затухания.
Я заметил, что возврат атрибутов макета, где высота установлена ​​на 0, приводит к результату в представлении не удаляется из очереди, но это не относится к этому нижнему колонтитулу.
Как я могу предотвратить попадание представления в состояние, в котором UICollectionView хочет его скрыть?

Подробнее здесь: https://stackoverflow.com/questions/786 ... s-rendered
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»