У меня есть горизонтальный UICollectionView
, который реализует UICollectionViewLayout
и использует targetContentOffsetForProposedContentOffset
для пользовательской функции пэнга/пейджинга. Каждая ячейка имеет почти ширину экрана, а следующая ячейка слегка отображается вправо. Функциональность отлично работает, но я хочу иметь возможность удалять ячейку с индексом 0, когда текущая ячейка является индексом 1. В настоящее время я могу рассчитать и сделать это просто отлично, но при удалении ячейки индекса 0 она скользит до следующая ячейка (старый индекс 2, новый 1 (после удаления 0)) из-за текущего смещения содержимого. Я не уверен, как удалить индекс 0 при сохранении текущего макета.UICollectionview custom flow layout delete cell
Сейчас в моем делегатом я делаю:
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{
float cellWidth = self.collectionView.bounds.size.width - 20;
float currentPage = self.collectionView.contentOffset.x/cellWidth;
if (currentPage == 1) {
[self remove:0];
}
}
-(void)remove:(int)i {
[self.collectionView performBatchUpdates:^{
[self.data removeObjectAtIndex:0];
NSIndexPath *indexPath =[NSIndexPath indexPathForRow:0 inSection:0];
[self.collectionView deleteItemsAtIndexPaths:[NSArray arrayWithObject:indexPath]];
} completion:^(BOOL finished) {
}];
}
Таким образом, расчет и удаление работает нормально, но при УДАЛЕНИЕ [0], вид коллекции прокручивается к следующему cell..and I» Не знаю, как это остановить.
Я пробовал self.collectionview.contentOffset = CGMakePoint(0,0)
после удаления, но переход по-прежнему заметно неисправен. Любые идеи о том, как подойти к этой проблеме?