У меня есть UICollectionView
, который является subview
из UIScrollView
(это требуется из-за материала, выше и ниже точки зрения сбора.Анимационные изменение высоты UICollectionView
Во всяком случае ...
Представление коллекции показывают три элемента в строку и только два ряд, чтобы начать с.
первые пяти пунктов фактическими деталей, а последний элементом является «См Больше» деталью.
Когда последний элемент пр essed изменить количество отображаемых элементов и обновить представление коллекции ...
NSMutableArray *indexPaths = [NSMutableArray array];
for (int i = 5 ; i<self.facilities.count ; i++) {
[indexPaths addObject:[NSIndexPath indexPathForItem:i inSection:0]];
}
// changing the tableCollapsed bool updates the number of items
if (self.isTableCollapsed) {
self.tableCollapsed = NO;
[self.collectionView insertItemsAtIndexPaths:indexPaths];
} else {
self.tableCollapsed = YES;
[self.collectionView deleteItemsAtIndexPaths:indexPaths];
}
тогда я бегу ...
[self setHeightAnimated:YES];
Что делает это ...
- (void)setHeightAnimated:(BOOL)animated
{
NSInteger numberOfRows = (NSInteger) ceilf((CGFloat)[self getNumberOfItems]/self.numberOfItemsPerRow);
self.heightConstraint.constant = numberOfRows * self.rowHeight;
if (animated) {
[UIView animateWithDuration:0.2
animations:^{
[self layoutIfNeeded];
}];
} else {
[self layoutIfNeeded];
}
}
Этот всегда работает и устанавливает правильную высоту и получает правильное значение animated
, когда оно должно быть YES
или NO
. Однако он никогда не оживляет. Он сразу переключается на новую высоту.
Я предполагаю, что это из-за какого-то кода макета, который запускается или что-то в этом роде, но мне было интересно, знает ли кто, как это сделать, чтобы высота правильно изменилась с указанной мной анимацией.
Thanks