TableView中不同的GADBannerView

时间:2013-08-19 17:21:35

标签: ios admob tableview

我想要一个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;

1 个答案:

答案 0 :(得分:0)

cellForRowAtIndexPath:方法中,检查indexPath.row值。如果它可被13整除,则加载广告单元格。

然后,您可以扩展该技术以检查要加载的广告 - 因此,如果它是第26行,26%13 = 2,那么加载广告#2,依此类推。

将逻辑置于单元子类中违反了模型 - 视图 - 控制器模式 - 您的单元格是数据的愚蠢接收者,而UITableViewController类决定了它们应显示的内容。