我想为我的collectionview单元设置动画,这样当我触摸它时,一个mapview会从它下面滑出并基本上扩展到空间中,方法是将它下面的单元向下推一点。我尝试使用这个:UICollectionView: Animate cell size change on selection,但无法使其正常工作。
这是我尝试过的。
- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath
{
[((FeedCell *)[collectionView cellForItemAtIndexPath:indexPath]) setIsSelected:YES];
[collectionView.collectionViewLayout invalidateLayout];
__weak FeedCell *cell = (FeedCell *)[self.photoCollectionView cellForItemAtIndexPath:indexPath]; // Avoid retain cycles
void (^animateChangeWidth)() = ^()
{
CGRect frame = cell.frame;
frame.size = CGSizeMake(frame.size.width, 420);
cell.frame = frame;
};
// Animate
[UIView transitionWithView:[collectionView cellForItemAtIndexPath:indexPath] duration:0.5f options: UIViewAnimationOptionCurveLinear animations:animateChangeWidth completion:nil];
}
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
if(((FeedCell *)[self.photoCollectionView cellForItemAtIndexPath:indexPath]).isSelected == YES){
return CGSizeMake(320, 420);
}
return CGSizeMake(320, 320);
}
我有一个自定义 CollectionView 单元格,它有一个 isSelected 属性。我不确定我应该为单元格的 xib 做什么(是否将地图视图放在那里,将 CGSize 设置为选定的大小或取消选择的大小等)任何帮助将不胜感激!