如何在表格的一部分中显示有限的行?
Posted
技术标签:
【中文标题】如何在表格的一部分中显示有限的行?【英文标题】:How to show limited rows in a section of a table? 【发布时间】:2019-01-16 09:22:08 【问题描述】:假设我在一个表中有两个部分,第 1 部分中有 800 个可重复使用的单元格。我们如何设置它应该一次显示 10 个单元格的部分,当我单击显示更多按钮时,它应该加载接下来的 10 个单元格等等?
【问题讨论】:
【参考方案1】:您问题的一部分:
第 1 节中有 800 个可重复使用的单元格
看起来您在第 1 节中有 800 行而不是 800 个单元格。渲染 tableview 后,它只会创建可以在屏幕上显示的单元格,并在有更多数据时重用它们。
您需要执行以下操作:
-
创建一个包含 800 行的主数据源(比如数组)。 (比如
allRows
)
创建另一个包含来自allRows
的部分数据的源。 (比如说“fetchedRows”)
在页脚或最后一行添加Load More
按钮。
按“加载更多”时,从allRows
到fetchedRows
中获取一些行数。 (比如说 10 行)
使用数据源fetchedRows
重新加载表视图。
第 2 部分也可以遵循相同的步骤。
【讨论】:
【参考方案2】:func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int)
使用该部分。
if section == 0
return 100
else if section == 1
return 10
【讨论】:
问题被标记为 Objective-C,而不是 Swift。请以正确的语言发布答案。【参考方案3】:请按照以下步骤操作:
全局设置:
var arrIndex = 10
然后在
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int
return arrIndex
然后在表格视图底部添加按钮。在按钮动作中请写
@objc func btnShowMoreClicked(sender : Any)
arrIndex = arrIndex + 10
self.tableView.reloadData()
它可能对您有所帮助。谢谢。
【讨论】:
问题被标记为 Objective-C,而不是 Swift。请以正确的语言发布答案。【参考方案4】:您可以使用pageIndex
管理这些东西,设置全局变量var pageIndex:Int = 1
并点击更多以将pageIndex
增加1 并重新加载UITableview
我已经为第 0 部分编写了这个逻辑,最初加载 10 条记录,
我在此语句return (10 * pageIndex) + 1
中通过 +1 添加了一行,因为 +1 用于加载更多按钮。
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int
if section == 0
return (10 * pageIndex) + 1
else
return 10
【讨论】:
问题被标记为 Objective-C,而不是 Swift。请以正确的语言发布答案。【参考方案5】:首先设置全局 int 变量:
@interface TableViewController ()
int arrNum;
@end
@implementation TableViewController
- (void)viewDidLoad
[super viewDidLoad];
arrNum = 3;
然后设置部分计数:
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
return 2;
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
if (section == 0)
return arrNum;
else
return 5;
然后在该部分的页脚中创建一个按钮:
-(UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section
UIButton *btn = [[UIButton alloc]init];
[btn setTitle:@"btn Click" forState:UIControlStateNormal];
[btn setBackgroundColor:[UIColor blueColor]];
[btn addTarget:self action:@selector(btnClk) forControlEvents:UIControlEventTouchDown];
return btn;
现在设置单击按钮时所需的操作:
-(void)btnClk
arrNum = arrNum + 2;
dispatch_async(dispatch_get_main_queue(), ^
[self.tableView reloadData];
);
【讨论】:
以上是关于如何在表格的一部分中显示有限的行?的主要内容,如果未能解决你的问题,请参考以下文章