8

我现在正在尝试复制它:

在此处输入图像描述

如果你熟悉 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 个单元格向上拖动到视图中,同时保持剩余卡片堆叠,就像您在上面看到的那样。

4

1 回答 1

0

我看到这个观点的两个部分。1. 一堆“牌” & 2. 一堆牌桌。像这样分解它使它更容易处理。

创建一个可以拖动UIView的“卡片”(我称之为)应该很简单。UICardView创建这些的“堆栈”也不应该太困难。我认为最难的部分是有效地添加阴影。

第二部分包括许多活动部分:将这些堆栈添加到表中。实际上,表格用于平滑滚动和一致的间距,实际上是完全透明的。您需要计算每叠“卡片”的高度heightForRowAtIndexPath:

这种方法允许平滑滚动、相对较低的内存占用以及相对容易的高度定制。此外,这些较小的部分应该易于维护和添加功能。

于 2014-11-21T17:07:35.050 回答