如何在表格的一部分中显示有限的行?

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 按钮。 按“加载更多”时,从allRowsfetchedRows 中获取一些行数。 (比如说 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];
    );


【讨论】:

以上是关于如何在表格的一部分中显示有限的行?的主要内容,如果未能解决你的问题,请参考以下文章

如何选定excel表格中的一部分表格

悬停在表格上时如何突出显示表格的行和列?

如何使用 Material UI 表格分页在每页显示正确的行

单击表格视图时如何显示选定的行?

如何将一个 html 表格并排分成两部分?

EXCEL表格怎么显示隐藏的行或列