Wyświetlam wiele komórek obrazu w UICollectionView. Za pomocą jednego przycisku chciałbym móc pogrupować wszystkie moje komórki nad pierwszym.UICollectionView: niestandardowy układ animacji
Działa to dobrze, ale gdy próbuję dodać przejście do animacji w celu przegrupowania, nic się nie dzieje.
Oto metoda używam w niestandardowy układ:
- (NSArray*)layoutAttributesForElementsInRect:(CGRect)rect
{
NSArray* allAttributesInRect = [super layoutAttributesForElementsInRect:rect];
if([allAttributesInRect count] > 0 && _isRegroup)
{
UICollectionViewLayoutAttributes *firstAttribute = [allAttributesInRect objectAtIndex:0];
CGRect frame = firstAttribute.frame;
for(UICollectionViewLayoutAttributes *attribute in allAttributesInRect)
[UIView animateWithDuration:0.3f animations:^{attribute.frame = frame;}];
}
return allAttributesInRect;
}
- (void)regroupCells:(BOOL)isRegroup // This method is called from my collection controller when my button is pressed
{
_isRegroup = isRegroup;
[self invalidateLayout];
}
jakiś pomysł? Dzięki!
Dzięki! Rozumiem, jak to działa teraz :) – Pierre
Oto wynik dla tych, którzy chcą zobaczyć :) http://d.pr/v/QUTF (Mam problem glitch) – Pierre
Musisz zwiększyć indeks z dla "top" "przedmiot w stosie, możesz to zrobić w tym samym miejscu, w którym dopasowujesz ramkę. – jrturton