EDIT: Я создал очень маленькое приложение, которое прекрасно представляет проблему. https://drive.google.com/file/d/0B6sI4Feh1HJUb3pGa2pBUmY4QW8/view?usp=sharing
В примере приложения нам просто нужно прокрутить вниз, а затем нажмите кнопку на верхней панели, чтобы увидеть проблему, с которой я сталкиваюсь
Я использую https://github.com/jamztang/CSStickyHeaderFlowLayout, чтобы в моем представлении коллекции были применены липкие заголовки (например, UITableView по умолчанию).
Это очень хорошо работает при прокрутке коллекции. У меня есть панель поиска вне коллекции, которая позволяет пользователям фильтровать данные с текстом поиска, каждый раз, когда пользователь вводит письмо, я обновляю данные коллекции с найденными данными.
Проблема заключается в том, что в настоящее время в представлении коллекции есть 4 раздела и что она полностью прокручивается внизу. Когда я ввожу букву certian, она отфильтровывает все, кроме одного элемента (с одним заголовком). Затем размер содержимого изменяется для представления коллекции и отображает правильные данные, но заголовок слишком низкий (см. Снимок экрана).
Я исследовал внутри flowlayout и внутри layoutAttributesForElementsInRect
, и я вижу, что он фактически устанавливает начало Y кадра в 0 (как и должно быть), но, похоже, коллекция не использует это значение и использует предыдущий (который был, когда просмотр коллекции был прокручен вниз).
Любая идея, что может заставить UICollectionView
не использовать нужный кадр внутри layoutAttributesForElementsInRect
?