animation tableview

原创 2012年03月26日 16:28:16
[self.tableView beginUpdates];  // remove row exists [self.tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:(rows exists)  withRowAnimation:UITableViewRowAnimationFade];  (chang data source here, for me, it's NSFetchedResultsController)  // insert new rows [self.tableView insertRowsAtIndexPaths:(new rows) withRowAnimation:UITableViewRowAnimationFade];  [self.tableView endUpdates]; 

This code shows animation well, but it has a small problem.

The cells are shows moving animation from frame rect (0, 0, 0, 0) to it's actual position, not only fading animation.

I think problem is that initial frame of cells are (0, 0, 0, 0), so I set up initial frame property of cell in cellForRowAtIndexPath, but it does not work.

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    .... 
    cell.frame = CGRectMake(0, indexPath.row * 64, 320, 64); 
    NSLog(@"set frame"); 
    .... 
} 


 

BOOL animateRowsAlpha = NO; 
 
- (void)reloadData { 
    [UIView animateWithDuration:0.2  
                     animations:^{ 
                         for (UITableViewCell *cell in self.tableView.visibleCells) { 
                             cell.alpha = 0.0f; 
                         } 
                     } completion:^(BOOL finished) { 
                         animateRowsAlpha = YES; 
                         [self.tableView reloadData]; 
                     } 
     ]; 
} 
 
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
    static NSString *cellIdentifier = @"Cell"; 
    UITableViewCell *cell = (UITableViewCell *)[tableView dequeueReusableCellWithIdentifier:cellIdentifier]; 
    if (!cell)  
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier] autorelease]; 
 
    if(animateRowsAlpha) 
        cell.alpha = 0.0; 
 
    return cell; 
} 
 
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath { 
    if (!animateRowsAlpha) { 
        return; 
    } 
 
    [UIView animateWithDuration:0.2  
                     animations:^{ 
                         cell.alpha = 1.0f; 
                     }]; 
 
    NSArray *indexPaths = [tableView indexPathsForVisibleRows]; 
    NSIndexPath *lastIndexPath = [indexPaths lastObject]; 
    if(!lastIndexPath || [lastIndexPath compare:indexPath] == NSOrderedSame) { 
        animateRowsAlpha = NO; 
    } 
} 


 

Will above code work for deleting/inserting node into tableview

相关文章推荐

tableView-headerView拉伸

  • 2016年04月05日 20:43
  • 94KB
  • 下载

并列tableview

  • 2016年07月29日 15:48
  • 3.48MB
  • 下载

iOS开发-tableView上显示悬浮按钮悬浮窗

项目中如何给tableView上添加一个悬浮的按钮? 如何实现? 最近在公司做项目时,产品经理有一个需求就是在一个 tableView上 加一个悬浮的按钮, 尝试了很多方案之后我终于找到了一个通用的...

tableView滑动不加载

  • 2016年01月19日 21:45
  • 86KB
  • 下载

QT TableView

  • 2016年01月15日 15:07
  • 18KB
  • 下载

TableView的性能优化-主要针对滑动时候出现的卡顿现象

TableView的性能优化-主要针对滑动时候出现的卡顿现象
  • ITclody
  • ITclody
  • 2016年02月26日 20:29
  • 9879

在tableview中的下拉列表

  • 2017年08月08日 18:08
  • 112KB
  • 下载

tableview表格的折叠

  • 2014年09月10日 10:51
  • 45KB
  • 下载

Swift - 去除tableView在编辑模式下的自动缩进(单元格头部不留空白)

1,问题描述 我们知道当表格 tableview 进入到编辑状态时,单元格内容会自动向右缩进,这样留出的空间可以用来显示新增或删除按钮图标。                 ...

一个控制器 多个tableview

  • 2015年12月24日 09:57
  • 32KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:animation tableview
举报原因:
原因补充:

(最多只允许输入30个字)