3

カスタムレイアウトを作成し、セルの位置属性を次のlayoutAttributesForItemAtIndexPathように設定しました

attributes.center = CGPointMake((size.width/2 - 100) + 100, (size.height/2 - 150) +100);
 

セルが選択されたときにアニメーション化したいのですが。initialLayoutAttributesForAppearingItemAtIndexPath&で取得する種類のアニメーションを複製しfinalLayoutAttributesForDisappearingItemAtIndexPathます。

セルが選択および選択解除されたときにこれを実行したいと思います。

たとえば、次のようになります。

セルAは所定の位置にあり 0,0ます。セルBは所定の位置にあり 50,100ます。セルBを選択した場合、それをアニメートしたいと思います0,0。同時に、セルAをにアニメートし50,100ます。基本的に位置を切り替えますが、アニメーション化されています。

4

2 に答える 2

0

UICollectionViewDelegate で didSelectItemAtIndexPath を使用して属性をアニメーション化しています。

- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath
{
    [_collectionView.collectionViewLayout invalidateLayout];
    UICollectionViewLayoutAttributes *newAttributes = [_collectionView layoutAttributesForItemAtIndexPath:indexPath];

    //use new attributes for animation
}
于 2012-10-25T11:47:23.723 に答える