Вы можете сделать это, добавив проверку, где вы находитесь в методе cellForRowAtIndexPath:
. Этот метод легко понять и реализовать:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
// Classic start method
static NSString *cellIdentifier = @"MyCell";
MyCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
if (!cell)
{
cell = [[MyCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:MainMenuCellIdentifier];
}
MyData *data = [self.dataArray objectAtIndex:indexPath.row];
// Do your cell customisation
// cell.titleLabel.text = data.title;
BOOL lastItemReached = [data isEqual:[[self.dataArray] lastObject]];
if (!lastItemReached && indexPath.row == [self.dataArray count] - 1)
{
[self launchReload];
}
}
EDIT: добавлена проверка последнего элемента для предотвращения вызовов рекурсии. Вам нужно будет реализовать метод, определяющий, достигнут ли последний элемент или нет.
EDIT2: объяснено lastItemReached
В ваших «Значениях ячеек» вы захотите ввести собственное выражение. Что-то вроде следующего должно помочь:
If(First([Company]) = "GMC", sum([value]) * .7, sum([value]))
Для нескольких условных выражений используйте оператор case
вместо if
. Пользовательское выражение потребует, чтобы у всех входящих столбцов был метод агрегации, связанный с ними. Замените sum
и value
любой числовой информацией, которую вы пытаетесь отобразить (т. Е. sum([cashflow])
, count([Company])
).