【问题标题】:Objective c - Is there a way to populate a table view with some animation?Objective c - 有没有办法用一些动画填充表格视图?
【发布时间】:2012-05-05 15:28:29
【问题描述】:

我有一个视图控制器,它有一个表视图和一个代表我的模型的 NSArray。在 viewDidLoad 中,我用对象填充数组,然后调用 [tableView reloadData] 来填充表格视图。结果是表格视图被填满了一大块,我不喜欢它。
我希望它向下滑动,就像我在一个接一个地添加一个单元格一样。
这可能吗?

如果我尝试做这样的事情:

    [self.tableView beginUpdates];

    for (int i=0; i < sortedPersons.count; i++) {
        Person *personInfo = [sortedPersons objectAtIndex:i];
        [self.myMainModelArr addObject:personInfo];

        NSIndexPath *newIndexPath = [NSIndexPath indexPathForRow:i inSection:0];
        [self.tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:newIndexPath] withRowAnimation:UITableViewRowAnimationFade];
    }

    [self.tableView endUpdates];

我收到无效的表格视图更新错误

【问题讨论】:

    标签: iphone objective-c uitableview viewdidload


    【解决方案1】:

    在使用 UITableView 时,您可以使用一些委托函数来帮助解决此问题。 当你要向 tableView 添加一些东西时,一定要使用:

    [tableView beginUpdates];
    

    那么在插入的时候就可以使用委托方法了:

    - (void)insertSections:(NSIndexSet *)sections withRowAnimation:(UITableViewRowAnimation)animation

    然后在完成添加时,一定要使用:

    [tableView endUpdates];
    

    所有这些功能都可以从UITableView Class Reference查看

    这里有一点sn-p代码:UITableView add cell Animation

    【讨论】:

    • 如果对您有帮助,请选择它作为答案。
    • 问题是我想在表格视图中的任何行之前执行此操作,但问题是表格视图还不知道一个部分中有多少个部分或多少行,因为那些委托方法还没有调用,因为我没有做 reloadData...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-03
    • 1970-01-01
    • 1970-01-01
    • 2012-06-20
    相关资源
    最近更新 更多