0

已经很晚了,此时我太愚蠢了,无法弄清楚到底发生了什么。有没有人在这里看到任何明显的错误。

当用户按下它时,我正在尝试为 collectionview 单元格的框架设置动画。

这是我来自视图控制器的代码。

-(void)collectionView:(UICollectionView *)collectionView didHighlightItemAtIndexPath:(NSIndexPath *)indexPath{

    NSLog(@"Highlighted");
    [[cells objectAtIndex:indexPath.row] shrinkCell:YES];


}

这是我在单元格内的代码

-(void)shrinkCell:(BOOL)shrink{
    NSLog(@"Shrink");


    if (shrink) {


        [UIView animateWithDuration:1.0
                              delay:0.5
                            options: UIViewAnimationOptionCurveEaseIn
                         animations:^{
                             self.bg.frame = CGRectOffset(self.bg.frame, 100, 100);
                         }
                         completion:nil];
    }
}

我遇到的问题是动画立即完成。它没有延迟,也没有持续时间。我不知道为什么。任何人有任何提示或想法?

非常感谢。

4

4 回答 4

0

尝试为center属性设置动画,而不是frame. 我的猜测是您的框架由于某种原因不再具有动画效果。

于 2013-10-16T06:11:09.343 回答
0

尝试这个,

-(void)collectionView:(UICollectionView *)collectionView didHighlightItemAtIndexPath:(NSIndexPath *)indexPath
{
    NSLog(@"Highlighted");
    UICollectionViewCell  *animateCell = [collectionView cellForItemAtIndexPath:indexPath];
    [self shrinkCell:YES andCell:animateCell];
}
-(void)shrinkCell:(BOOL)shrink andCell:(UICollectionViewCell*)animCell{
    NSLog(@"Shrink");


    if (shrink) {


        [UIView animateWithDuration:1.0
                              delay:0.5
                            options: UIViewAnimationOptionCurveEaseIn
                         animations:^{
                             animCell.frame = CGRectOffset(animCell.frame, 100, 100);
                         }
                         completion:nil];
    }
}
于 2013-10-16T06:13:26.597 回答
0

我不知道它是否与它有关,但是,这些细胞是从哪里来的?

[[cells objectAtIndex:indexPath.row] shrinkCell:YES];

你为什么不使用?:

[collectionView cellForItemAtIndexPath:indexPath];
于 2013-10-16T06:50:05.263 回答
0

你的意思是使用:

-(void)collectionView:(UICollectionView *)collectionView didHighlightItemAtIndexPath:(NSIndexPath *)indexPath

并不是 :

- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath
于 2013-10-17T16:09:13.753 回答