Вам необходимо увеличить количество возвращаемых ячеек в numberOfRowsInSection
и учесть добавленные строки в cellForRowAt
Количество рекламных объявлений будет 1 + n / 5 (первая строка, а затемкаждая пятая строка), поэтому число ячеек в вашей таблице будет n + n/5 + 1
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
NSInteger n;
n= [array count];
return n/5 + n + 1;
}
Теперь некоторые ячейки, которые вам нужно вернуть из cellForRowAt
, будут рекламными, и вам потребуется аккаунтдля этого при доступе к вашему массиву данных.Индекс, который вам нужен, - это номер строки - количество рекламных строк, предшествующих этому.Это индекс / 5 + 1 (первая строка и каждые 5 строк).
- (UITableViewCell *)tableView:(UITableView *)aTableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
if (indexPath.row % 5 == 0) {
AdCell *cell = (AdCell *)[tableView dequeueReusableCellWithIdentifier:"Ad" forIndexPath: indexPath];
...
NSLog(@"Showing an ad at row %ld",indexPath.row);
return cell;
else
{
NSInteger index = indexPath.row - indexPath.row/5 - 1;
NSDictionary *dict = myArray[index];
NormalCell *cell = (NormalCell *)[tableView dequeueReusableCellWithIdentifier:"Normal" forIndexPath: indexPath];
cell.title.text=[NSString stringWithFormat:@"%@ ",dict["Name"]];
NSLog(@"Showing a normal row at row %ld (data from element %ld of array)",indexPath.row,index);
return cell;
}
}