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<; i++) {
SEMenuItem *item = ;
[UIView animateWithDuration:0.2 animations:^{
if (i < 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]