2012-06-02 123 views
0

我想爲tableview的每個單元格設置動畫。所以如果我選擇一個表格的單元格,那麼只有單元格會縮放,看起來像flipOver動畫。如何爲單個UITableViewCell設置動畫?

我有一些代碼。但是,如果我選擇它,那麼所有的表格都會被翻轉。不僅是一個細胞。

在這裏,代碼如下。

-(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個意見在這個樣本。 請幫幫我。

回答

0

有一種替代解決方案,您可以嘗試。在創建單元格時創建一個UIView對象。該視圖的外觀應該像你的單元格的外觀。現在用該視圖設置Cell的contentview。

- (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]; 
} 
相關問題