У меня UICollectionView
есть FLowLayout. Большую часть времени он будет работать так, как я ожидал, но время от времени одна из ячеек не переносится должным образом. Например, ячейка, которая должна находиться в первом «столбце» третьей строки, если на самом деле заканчивается во второй строке, и там, где должно быть, есть только пустое место (см. Диаграмму ниже). Все, что вы можете видеть в этой ячейке с румянцами, - это левая сторона (остальная часть обрезана), и место, где она должна быть, пусто.
Это не происходит постоянно; это не всегда один и тот же ряд. Как только это произойдет, я могу прокрутить вверх, а затем назад, и ячейка зафиксируется сама. Или, когда я нажимаю ячейку (что переводит меня к следующему представлению с помощью нажатия), а затем возвращаюсь, я увижу ячейку в неправильном положении, а затем она перейдет в правильное положение.
Скорость прокрутки, кажется, упрощает воспроизведение проблемы. Когда я прокручиваю медленно, я все еще могу видеть ячейку в неправильном положении время от времени, но тогда она сразу же перейдет в правильное положение.
Проблема началась, когда я добавил вставки разделов. Раньше у меня ячейки были почти на одном уровне с границами коллекции (маленькие вставки или их нет), и я не замечал проблемы. Но это означало, что правая и левая часть представления коллекции были пусты. Т.е. прокручивать не мог. Кроме того, полоса прокрутки не смещена вправо.
Я могу сделать проблему как на Симуляторе, так и на iPad 3.
Я предполагаю, что проблема возникает из-за вставок левого и правого разделов ... Но если значение неправильное, я ожидаю, что поведение будет согласованным. Интересно, может ли это быть ошибкой Apple? Или, возможно, это связано с нарастанием вставок или чем-то подобным.
Дальнейшие действия : я использую этот ответ Ника ниже более 2 лет без проблем (на случай, если люди задаются вопросом, есть ли в этом ответе какие-либо дыры - я их еще не нашел). Молодец, Ник.