在uitableviewcell中制作“加载更多”按钮?
Posted
技术标签:
【中文标题】在uitableviewcell中制作“加载更多”按钮?【英文标题】:making a "load more" button in uitableviewcell? 【发布时间】:2011-05-28 05:26:23 【问题描述】:嘿, 谁能指导我完成这个我在表中有大约 15 个条目我希望另外 15 个条目在最后一个 UITableViewCell 中提供更多负载。谁能帮帮我?
【问题讨论】:
others 中 "Load More" in UITableView 或 How to implement "Load 25 More" 或 Mail app load more messages 或 Load more records in iPhone 或 Add load more option to table view 可能重复 【参考方案1】:在表格视图中显示一个额外的行,在
- (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];
【讨论】:
@SriPriya,添加此行numberOfRows = [yourEntriesArray count] + 1;
使其更清晰。
所以我要添加 +1 以返回 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 吗?
@SriPriya,我已编辑您的答案以添加更多上下文。我希望你不会介意。 :)
@user655995:是的,它说,如果 dataRows 为 15,我们将 numberOfRows 设置为 16 以显示额外的一行显示“加载更多行”
知道如何使用自定义单元格吗?【参考方案2】:
我写了一个例子项目就是这样做的。从 GitHub 下载 https://github.com/Abizern/PartialTable
【讨论】:
我喜欢使用beginUpdate
和endUpdate
更新tableView的部分【参考方案3】:
我写了一些可能有用的东西:https://github.com/nmondollot/NMPaginator
它封装了分页,几乎可以与任何使用 page 和 per_page 参数的 Web 服务一起使用。它还具有 UITableView,当您向下滚动时会自动获取下一个结果。
【讨论】:
【参考方案4】:希望对你有帮助
我取了一个可变数组和一个整数变量,并将数组的总数设置为整数变量
arr = [[NSMutableArray alloc]initWithObjects:@"Radix",@"Riki", nil]; dataRows = [arr 计数];然后我根据表格的数据源方法中的整数变量设置部分中的行数
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section // 返回节中的行数。 返回数据行+1;因为你最后想要一个额外的单元格。
现在是时候设置表格单元格的文本了
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
静态 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) //请为exra细胞编码运行您的应用以检查此代码。
【讨论】:
以上是关于在uitableviewcell中制作“加载更多”按钮?的主要内容,如果未能解决你的问题,请参考以下文章
在 UITableViewCell ios 中制作动态 UILabel 高度/宽度?
在 Xcode 4.3 中,使用 Interface Builder 制作 UITableviewCell 的选项消失了
如何在不添加另一个 UIView 的情况下为情节提要中的 uitableViewCell 制作等宽分隔符?
如果我快速点击,为啥 UITableViewCell 选择不绘制?