如何使用UICollectionView在Pages中重新创建重命名动画?

时间:2012-10-06 16:29:56

标签: ios core-animation uicollectionview

在页面中,文档被列为纸张大小的矩形,下面是标题和日期。我用UICollectionView重新创建了这个外观。

当用户点击标题以重命名文档时,所有其他文档都会淡出,而您点击的文档会从当前位置过渡到中心,并在键盘滑出时稍微扩大一些尺寸。

(我发现this video显示了我正在谈论的内容)

使用UICollectionView时,最好的方法是什么?

1 个答案:

答案 0 :(得分:1)

你必须继承UICollectionViewFlowLayout。然后,当执行所需的操作(重命名)时,将需要编辑的单元格的indexPath传递给布局。

然后您可以添加所需的布局属性,如下所示:

-(void)applyRenameAttributes:(UICollectionViewLayoutAttributes *)attributes
{
    if (self.renameIndexPath != nil) {
        if (attributes.indexPath == self.renameIndexPath) {
            // add attributes for the item that needs to be renamed
        } else {
            attributes.hidden = YES;
        }
    }
}
-(NSArray *)layoutAttributesForElementsInRect:(CGRect)rect
{
    NSArray *allAttributes = [super layoutAttributesForElementsInRect:rect];

    for (UICollectionViewLayoutAttributes *attributes in allAttributes) {
        [self applyRenameAttributes:attributes];
    }

    return allAttributes;
}
-(UICollectionViewLayoutAttributes *)layoutAttributesForItemAtIndexPath:(NSIndexPath *)indexPath
{
    UICollectionViewLayoutAttributes *attributes = [super layoutAttributesForItemAtIndexPath:indexPath];

    [self applyRenameAttributes:attributes];

    return attributes;
}

更改renameIndexPath值时,您还需要使布局无效(在设置器中执行此操作)。重命名完成(或取消)后,您将renameIndexPath更改回nil