複製谷歌的搜索iOS卡動畫


Answers

Question

我正試圖複製這一刻:

如果您熟悉Google的應用程序,它看起來像一個具有自定義流佈局的UICollectionView。

我正在擴展一個已經關閉了一些額外的代碼的問題。

這是另一個問題的鏈接。

在自定義流佈局類中,我可以通過設置負的最小行間距值並使用以下內容創建“堆疊”效果:

- (NSArray *)layoutAttributesForElementsInRect:(CGRect)rect
{
    NSArray *allAttributesInRect = [super layoutAttributesForElementsInRect:rect];

    CGPoint centerPoint = CGPointMake(CGRectGetMidX(self.collectionView.bounds), CGRectGetMidY(self.collectionView.bounds));

    for (UICollectionViewLayoutAttributes *cellAttributes in allAttributesInRect)
    {
        if (CGRectContainsPoint(cellAttributes.frame, centerPoint))
        {
            cellAttributes.transform = CGAffineTransformIdentity;
            cellAttributes.zIndex = 1.0;
        }
        else
        {
            cellAttributes.transform = CGAffineTransformMakeScale(0.75, 0.75);
        }
    }

    return allAttributesInRect;
}

刪除動畫的掃描工作正常,但是我在創建“堆疊”外觀時遇到了困難,然後將1個單元格向上拖入視圖中,同時保留其餘的卡片,如上所示。