如何为单个UITableViewCell设置动画?

时间:2012-06-02 01:58:10

标签: iphone uitableview

我想将动画设置为tableview的每个单元格。因此,如果我选择一个表格的单元格,那么只有单元格才会缩放,看起来像flipOver动画。

我有一些代码。但是,如果我选择它,那么所有的表都会被翻转。不仅是一个细胞。

此处代码如下。

-(void)tableView:(UITableView*)tableView didSelectRowAtIndexPath:(NSIndexPath*)indexPath
{
    UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
    [tableView deselectRowAtIndexPath:indexPath : YES ];
    [UIView transitionFromView:cell toView:checkProjectView duration:1.0f options:UIViewAnimationOptionTransitionFlipFromLeft completion:NULL];
    [UIView commitAnimations];
}

我该如何实施呢?

我在这个样本中有2个观点。 请帮帮我。

1 个答案:

答案 0 :(得分:0)

您可以尝试一种替代解决方案。创建单元格时创建UIView对象。该视图的外观应该与您的手机外观相似。现在使用该视图设置Cell的内容视图。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    // See if there's an existing cell we can reuse
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Foobar"];
    if (cell == nil) {
        // No cell to reuse => create a new one
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Foobar"] autorelease];

    }

    // Customize cell
    [cell.contentView addSubview:customView]; // customView is your view which you want to set

    return cell;
}

现在使用您的动画代码进行此CustomView。

-(void)tableView:(UITableView*)tableView didSelectRowAtIndexPath:(NSIndexPath*)indexPath
{
    UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
    [tableView deselectRowAtIndexPath:indexPath : YES ];
    [UIView transitionFromView:[cell.contentView viewWithTag:#tagof view here] toView:checkProjectView duration:1.0f options:UIViewAnimationOptionTransitionFlipFromLeft completion:NULL];
    [UIView commitAnimations];
}