菜鸟教程小白 发表于 2022-12-12 23:57:24

ios - 用于删除 UICollectionViewCells 的类似跳板的动画


                                            <p><p>我正在尝试找出一种方法来为 <code>UICollectionViewCell</code> 的删除设置动画,类似于 iOS 7 中的跳板。已删除的单元格应缩小为虚无,其余单元格应滑过以填充其位置(滑动是重要的部分)。我试过了:</p>

<p>• 将每个单元格的框架设置为前一个单元格的框架,如下所示:</p>

<pre><code>UICollectionViewCell *cell = ];
CGRect rect = ].frame;      
[UIView animateWithDuration:0.2 animations:^{
    cell.frame = rect;
}];
</code></pre>

<p>但这不起作用,因为细胞根本没有移动。</p>

<p>• 以下两项:</p>

<pre><code>[self.collectionView performBatchUpdates:^{
    ];
} completion:nil];
</code></pre>

<p>和</p>

<pre><code>[UIView animateWithDuration:0.2 animations:^{
    ];
}];
</code></pre>

<p>但这些会使细胞交叉淡化到所需的位置,而不是滑动。</p>

<p>我还找到了 <a href="https://www.cocoacontrols.com/controls/sespringboard" rel="noreferrer noopener nofollow">this project</a> ,它使用以下内容:</p>

<pre><code>for (int i = index+1; i&lt;; i++) {
    SEMenuItem *item = ;
    [UIView animateWithDuration:0.2 animations:^{

      if (i &lt; index + remainingNumberOfItemsInPage) {

            int intVal = item.frame.origin.x;
            if (intVal %3== 0)
                ;
            else
                ;
      }

      ;
    }];
}
</code></pre>

<p>但是,它不在 <code>UICollectionView</code> 中,所以对我没有帮助。</p>

<p><em>注意:</em>我在 iPad 上执行此操作,以防万一对您很重要。</p>

<p>有什么想法吗?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>子类 <code>UICollectionViewFlowLayout</code>。实现:</p>

<pre><code>- (UICollectionViewLayoutAttributes *)finalLayoutAttributesForDisappearingItemAtIndexPath:(NSIndexPath *)indexPath
{
    UICollectionViewLayoutAttributes *attr = ; // might need to replace self with super

    attr.transform = CGAffineTransformMakeScale(0, 0);

    return attr;
}
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 用于删除 UICollectionViewCells 的类似跳板的动画,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/24843057/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/24843057/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 用于删除 UICollectionViewCells 的类似跳板的动画