将行添加到现有UITableView部分

时间:2011-05-06 04:11:34

标签: objective-c cocoa-touch ios uitableview

我正在尝试获取有关如何向现有UITableView添加行的示例代码。我正在尝试使用insertRowsAtIndexPaths:函数。

    [tableView insertRowsAtIndexPaths:addindexes withRowAnimation:UITableViewRowAnimationTop];

有关这些索引如何工作以及如何添加到现有部分的任何想法,或者,如果我没有部分,那么创建一个新部分?

2 个答案:

答案 0 :(得分:11)

您必须创建一个索引路径数组 -

NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:0];

例如,如果要在第0部分中插入第2行并且在第0部分中已经有1行,则在第0部分为第1行创建索引路径并在表视图上调用insertRowsAtIndexPaths,它将在部分中插入第2行。

如果表视图中没有任何部分,那么你应该使用int作为数据源,在表格视图中没有给出任何部分,在这个用途中 -

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return noOfSection; //here section is as int which is initially zero
}

并且最初你的int“noOfSection”将为零,那么表格中没有任何部分,那么当你想要添加部分时,将你的int值增加1并调用[tableView reloadData];

答案 1 :(得分:6)

如果要在表格视图中插入行和节,则需要处理这些函数。

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return noOfSections;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return [[noOfRows objectForIndex:section] intValue];
}

如果您要更新表视图,建议您使用beginUpdates和endUpdates方法。

这是您插入新行和部分的方式。

noOfSections++;
[self.tableView insertSections:[NSIndexSet indexSetWithIndex:3] withRowAnimation:UITableViewRowAnimationTop];


// update your array before calling insertRowsAtIndexPaths: method
[self.tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:[NSIndexPath indexPathForRow:1 inSection:2]] 
                      withRowAnimation:UITableViewRowAnimationTop];

检查苹果提供的示例代码。

http://developer.apple.com/library/ios/#DOCUMENTATION/UIKit/Reference/UITableView_Class/Reference/Reference.html