2016-01-19 67 views
0

使用deleteRowsAtIndexPaths時,刪除行的相鄰單元格之間有間距。這隻會在刪除單元格的高度小於上面的單元格時出現。使用deleteRowsAtIndexPaths時刪除行的相鄰單元格之間有間距

感謝您的幫助!

 NSMutableArray *deleteArray = [NSMutableArray array]; 

     for (int i = 1; i < [speakerlist count]+1; i++) { 

      [deleteArray addObject:[NSIndexPath indexPathForRow:i inSection:indexPath.section]]; 
     } 

     [CATransaction begin]; 
     [tableView deleteRowsAtIndexPaths:deleteArray withRowAnimation:UITableViewRowAnimationTop]; 
     [showSpeakerlistCell.imageView setTransform:CGAffineTransformMakeRotation(M_PI)]; 
     [CATransaction commit]; 

enter image description here

我試圖與一個獨立的示範項目的另一種方式,和它的工作,但它有一些奇怪的動畫時,我拉我的項目。

我建一個project比較:

它優良使用視圖控制器,當我,這不是很好,當我起訴ViewController_02這是相同的代碼視圖控制器(讓下面的代碼項目)

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 
    // Override point for customization after application launch. 

// ViewController_02 *vc = [[ViewController_02 alloc] init]; 
// [self.window setRootViewController:vc]; 

    return YES; 
} 
+0

UITableViewRowAnimationFade更適合於刪除操作。 – Lumialxk

+0

它看起來好一點,但仍然可以看到間距 – Chris

回答

0

您必須使用UITableview函數beginUpdates/endUpdates來分組動畫。修改後的代碼將

[tableView beginUpdates]; 
[tableView deleteRowsAtIndexPaths:deleteArray withRowAnimation:UITableViewRowAnimationTop]; 
[tableView endUpdates]; 

[UIview animateWithDuration:0.5 animations:^{ 
    [showSpeakerlistCell.imageView setTransform:CGAffineTransformMakeRotation(M_PI)]; 
}]; 
+0

呃,它應該是這樣寫的,但它沒有什麼不同 – Chris

相關問題