我最初需要加载15条记录,然后当用户点击显示单元格的更多行时,我需要在我的tableview中加载接下来的20条或可用记录。我正在查看SO中发布的这个问题。
此功能也可以在appStore中看到。在哪里加载下一个记录数。
这里的解决方案是;
`- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return self.numberOfRowsVisible;
}
-(void)moreButtonClickAction {
if (self.numberOfRowsVisible < self.maxNumberOfRows)
self.numberOfRowsVisible = MIN(self.numberOfRowsVisible + 10, self.maxRows);
[self.tableView reloadData];
}
我初始化并将viewDidLoad中numberOfRowsVisible的值硬编码为15。
self.numberOfRowsVisible=[NSNumber numberWithInt:15];
<{1>}中的- 我不确定这是否正确。
numberOfRowsInSection
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return MIN([self.arrayRecords count], 15);
}
中的
moreButtonClickAction
这是我编辑我的代码以适应SO中留下的上述建议的方式。但这不起作用。 -(void)moreButtonClickAction {
if (self.numberOfRowsVisible < [self.arrayRecords count])
self.numberOfRowsVisible = MIN(self.numberOfRowsVisible + 15, [self.arrayRecords count]);
[self.tableView reloadData];
}
似乎存在一些问题。我此刻不在MAC,所以我不记得我得到的确切警告/错误。所以有人可以帮助我。
答案 0 :(得分:1)
如果要显示所有可能的条目,则必须使用MAX而不是MIN。
答案 1 :(得分:1)
numberOfRowsInSection应该返回一个整数。 self.numberOfRowsVisible不是整数。
viewDidLoad中:
self.numberOfRowsVisible=15;
主要实施:
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return self.numberOfRowsVisible;
}
-(void)moreButtonClickAction {
if (self.numberOfRowsVisible < [self.arrayRecords count]) {
self.numberOfRowsVisible += 15;
if (self.numberOfRowsVisible > [self.arrayRecords count]) {
self.numberOfRowsVisible = [self.arrayRecords count];
}
}
[self.tableView reloadData];
}
脱离我的头脑,代码可以用重新分解。
答案 2 :(得分:1)
1)不要使用NSNumber对象,普通整数会这样做。 2)为什么不只有一个整数变量来显示你想要显示的当前行数,并用15初始化,并将其保存在类实例中。 3)你甚至不必使用MIN:
return [self.arrayRecords count] < self.numberOfRowsVisible ? [self.arrayRecords count] : self.numberOfRowsVisible;