Animate-Rahmen und layout-Veränderung der UICollectionView

Ich versuche einen Effekt zu erstellen wo ändere ich das layout meiner UICollectionView beim ändern der frame-Größe

Zunächst die collectionView layout präsentiert die "thumbnail" - Galerie-Stil voller Bildschirm.

Nach Größe des Rahmens, um einen dünnen Streifen - ich möchte einen "film-strip" - Stil layout

beide layouts unabhängig voneinander funktionieren gut und wie erwartet.

Versuchte ich code wie diesem:

[UIView animateWithDuration:1
                          delay:0.0
                        options:UIViewAnimationOptionCurveEaseOut
                     animations:^{
                         self.collectionview.frame = newFrame; //animate the frame size


                     }
                     completion:^(BOOL finished) {
                        [self.collectionView.collectionViewLayout invalidateLayout];

    [self.collectionView setCollectionViewLayout:filmstriplayout animated:YES];    //now set the new layout
                     }];

Aber es sieht sehr abgehackt und nicht Größenanpassung, als erwartet.

Gibt es eine Möglichkeit, wo ich konnte, der collectionview layout und die Größe des Frames gleichzeitig während der Animation ändern?

Hast du dir schon mal eine gute Lösung? performBatchUpdates:withCompletion: ist gut, aber hilft nicht mit, die Kombination eines animierten frame oder contentOffset ändern. Ich will diesen für reibungslos animieren zoom, bounce back, wo mein layout und die contentOffset abhängig von zoom.

InformationsquelleAutor Avner Barr | 2013-09-08

Schreibe einen Kommentar