Правильное отображение рекламы adMob или adWhirl в UITableView

У меня проблема с реализацией AdMob в моем UITableView. У меня есть массив (newsItems), содержащий новостные ленты с разных сайтов. Массив отсортирован по дате новости. Я хочу отображать новости в табличном представлении, но в бесплатной версии приложения я хочу, чтобы реклама от AdMob показывалась в каждой 10-й ячейке табличного представления.

Я использовал код из другого ответа, чтобы добавить рекламу в таблицу:

if (0 == (row % 10))  {    

//cells with an add 
static NSString *MyIdentifier;
NSInteger row = [indexPath row];
MyIdentifier = [NSString stringWithFormat:@"AdCell%d", row];

cell = [tableView dequeueReusableCellWithIdentifier:MyIdentifier];      
if (cell == nil) {         
    cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:MyIdentifier] autorelease];     
}

[cell.contentView addSubview:[AdMobView requestAdWithDelegate:self]];
return cell;

} else {      
// the code to create a standard cell (simplified)
static NSString *CellIdentifier = @"Cell";

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
    cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];
}

NSString *cellValue = [newsItems objectAtIndex:indexPath.row];
cell.text = cellValue;

}

Я знаю, что это неправильно. При использовании «[newsItems objectAtIndex:indexPath.row]» таблица заполняется путем просмотра массива и добавления элемента новостей по индексу в соответствующую строку. Это означает, что если объявление должно быть добавлено в строку 10, соответствующий элемент новости в строке 10 массива не игнорируется и не перезаписывается объявлением AdWhirl.

Вместо этого я хочу, чтобы этот элемент новостей был добавлен в строку под объявлением. Это возможно?


person Tinuzzz    schedule 23.06.2011    source источник


Ответы (1)


У меня был класс ListObject, который хранил данные об этой ячейке (например, заголовок, эскиз, описание и т. д.), поэтому я добавил поле: BOOL isAd, а затем просто добавил новый ListObject с isAd = YES каждые 10 объектов и убедился, что создание моей ячейки и логика высоты знала, что делать с рекламными ячейками. Таким образом, у вас есть объект данных списка для каждого представления рекламы в вашей таблице.

person Mikepote    schedule 07.07.2011