在 UICollectionViewLayoutAttributes 中设置锚点

Posted

技术标签:

【中文标题】在 UICollectionViewLayoutAttributes 中设置锚点【英文标题】:Set anchor point in UICollectionViewLayoutAttributes 【发布时间】:2015-03-21 10:11:24 【问题描述】:

我想在UICollectionViewLayout 中执行变换动画。好吧,这很容易实现,但我找不到设置anchorPointUICollectionViewLayoutAttributes 的方法。我想在插入集合视图项时执行开门和关门动画

-(UICollectionViewLayoutAttributes *)initialLayoutAttributesForAppearingItemAtIndexPath:(NSIndexPath *)itemIndexPath
    UICollectionViewLayoutAttributes *attributes = [super initialLayoutAttributesForAppearingItemAtIndexPath:itemIndexPath];
    attributes.alpha = 1.0;
    CGFloat progress = 0.0;
    CATransform3D transform = CATransform3DIdentity;
    transform.m34 = -1.0/500.0;
    CGFloat angle = (1 - progress) * M_PI_2;

    transform = CATransform3DRotate(transform, angle, 0, 1, 0  );
    UICollectionViewCell *cell = [self.collectionView    cellForItemAtIndexPath:itemIndexPath];
    cell.hidden = YES;

    attributes.transform3D = transform;
    return attributes;

【问题讨论】:

【参考方案1】:

UICollectionViewLayoutAttributes 中似乎没有anchorPoint 属性,因此您必须对其进行子类化,为anchorPoint 添加一个属性并使用UICollectionViewCell 上的applyLayoutAttributes 来设置@ 987654326@ 单元格上的值。

【讨论】:

以上是关于在 UICollectionViewLayoutAttributes 中设置锚点的主要内容,如果未能解决你的问题,请参考以下文章

秋的潇洒在啥?在啥在啥?

上传的数据在云端的怎么查看,保存在啥位置?

在 React 应用程序中在哪里转换数据 - 在 Express 中还是在前端使用 React?

存储在 plist 中的数据在模拟器中有效,但在设备中无效

如何在保存在 Mongoose (ExpressJS) 之前在模型中格式化数据

如何在保存在 Mongoose (ExpressJS) 之前在模型中格式化数据