在uitableviewcell中制作“加载更多”按钮?

时间:2011-05-28 05:26:23

标签: objective-c cocoa-touch uitableview ios4

哎, 任何人都可以指导我通过这个我在表中有大约15个条目我希望另外15个在最后一个UITableViewCell中提出更多的负载。有人可以帮帮我吗?

4 个答案:

答案 0 :(得分:19)

在tableview中显示额外的行,在

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    return dataRows+1;
    }

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 

        //after setting tableviewcell

        if(indexPath.row==dataRows){

        cell.textLabel.text=@"Load More Rows";
        }
    }

 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
    {

    if(indexPath.row==dataRows){
    //there you can write code to get next rows
    }
 }

您需要根据显示的行更新numberOfRows变量。

编辑:获取额外条目后,可以使用以下方法将它们添加到现有条目数组中。您的原始数组应该是NSMutableArray才能使用此方法。

[originalEntriesArray addObjectsFromArray:extraEntriesArray];

答案 1 :(得分:8)

我写了一个这样做的示例项目。从GitHub https://github.com/Abizern/PartialTable

下载

答案 2 :(得分:4)

我写了一些可能有帮助的内容:https://github.com/nmondollot/NMPaginator

它封装了分页,并且几乎可以使用page和per_page参数处理任何web服务。它还具有UITableView,可在您向下滚动时自动获取下一个结果。

答案 3 :(得分:1)

希望这会有所帮助

我接受了一个Mutable数组和一个整数变量,并将数组的总数设置为整​​数变量

arr = [[NSMutableArray alloc]initWithObjects:@"Radix",@"Riki", nil];
dataRows = [arr count];

然后我根据表格的数据源方法中的整数变量设置节中的行数

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    // Return the number of rows in the section.
    return dataRows+1;
}

因为你最后想要一个额外的单元格。

现在是时候设置表格单元格的文本了

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

{     static NSString * CellIdentifier = @“Cell”;

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}

// Configure the cell...

//setting the text of the cell as per Mutable array
if (indexPath.row < [arr count]) {

    cell.textLabel.text = [arr objectAtIndex:indexPath.row];
}

 //setting the text of the extra cell

if (indexPath.row == dataRows) {
    cell.textLabel.text = @"more cells";
}     
return cell;

}

现在,你需要更多单元格的单元格更多,所以只需在

中添加代码即可
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

方法,意味着你必须做这样的事情

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    if(indexPath.row == dataRows)
    {
        //code for exra cells please
    }
}

运行您的应用以检查此代码。