我想要一个UITableView
,每13个单元格包含一个Admob横幅。
这确实有效,但我的问题是我想展示不同的横幅(目前有4个)。因此,在单元格13,我们有横幅1和单元格26横幅2,依此类推。
我的问题是,我不知道如何实现这一点。目前我收到每个单元格中的第一个横幅 - 我猜 - 这意味着代码只在每个单元格中加载1个横幅,然后说“是的。我有我的广告。现在我很高兴”然后没有加载2横幅在26格。
我确实是我的“AdCell”的子类,并且有一个Bool,它说“hasAD”以防止每个单元格在滚动时重新加载(但这可能是我问题的一部分?)。也许你可以帮助我。
表格中的细胞:
AdCell *cell = (AdCell *)[tableView dequeueReusableCellWithIdentifier:@"AdCell"];
cell.tag = 4;
if (cell == nil) {
cell = [[AdCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"AdCell"];
}
if (![cell hasAD]){
// Create a view of the standard size at the bottom of the screen.
// Available AdSize constants are explained in GADAdSize.h.
GADAdSize customAdSize = GADAdSizeFromCGSize(CGSizeMake(290, 120));
DFPBannerView *bannerView_ = [[DFPBannerView alloc] initWithAdSize:customAdSize];
//The AdCounter is what i said with banner1,banner2
if (adCounter == 4){
adCounter = 1;
}
bannerView_.adUnitID = [NSString stringWithFormat:@"LEFTOUT-%i/banner",adCounter];
// Let the runtime know which UIViewController to restore after taking
// the user wherever the ad goes and add it to the view hierarchy.
bannerView_.rootViewController = self;
//Center AD
[bannerView_ setCenter:CGPointMake(cell.center.x, cell.center.y)];
[cell.contentView addSubview:bannerView_];
// Initiate a generic request to load it with an ad.
[bannerView_ loadRequest:[GADRequest request]];
adCounter++;
[cell setHasAD];
}
return cell;
答案 0 :(得分:0)
在cellForRowAtIndexPath:
方法中,检查indexPath.row
值。如果它可被13整除,则加载广告单元格。
然后,您可以扩展该技术以检查要加载的广告 - 因此,如果它是第26行,26%13 = 2,那么加载广告#2,依此类推。
将逻辑置于单元子类中违反了模型 - 视图 - 控制器模式 - 您的单元格是数据的愚蠢接收者,而UITableViewController
类决定了它们应显示的内容。