将ADBanner放在UITableViewCell上

时间:2014-02-05 14:26:28

标签: ios iad

我的应用程序最近遭到拒绝,因为我的两个第三方库使用AdSupport框架,Apple在测试时无法在任何地方找到任何“Apple-Ad”横幅。所以我更新了我的代码,并将ADBannerView作为subview放在UITableView的单元格中。

但这似乎不起作用,我得到错误代码,如

ADErrorDomain代码4:应用程序有iAD配置错误和其他错误..

当我将横幅视图添加为subview视图的UIViewController时,它的效果非常好。

广告是否有问题,或者我无法将广告投放到UITableViewCell上?或者有没有办法在表格视图单元格上放置ADBannerView

修改

我放置ADBannerView就像在教程中一样。 http://www.raywenderlich.com/1371/iad-tutorial-for-ios-how-to-integrate-iad-into-your-iphone-app

编辑2:

这是用于验证iAd集成是否按预期工作的测试代码。

//这是用于构建表格视图单元格

- (void) initializeAllAdTableViewCells {

    [self initializeAdTableViewCellWithRow:1 inSection:0];

    [self initializeAdTableViewCellWithRow:4 inSection:0];

    [self initializeAdTableViewCellWithRow:5 inSection:0]; 
}

- (void) initializeAdTableViewCellWithRow:(NSUInteger) row inSection:(NSUInteger) section {

        UITableViewCell *cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]];

        ADBannerView *adView = [[ADBannerView alloc] initWithAdType:ADAdTypeBanner];

        adView.backgroundColor = [UIColor clearColor];

        [cell addSubview:adView];

        //store ad tableViewCell for later
        [self internalRegisterAdTableViewCell:cell withRow:row inSection:section];

        adView.autoresizingMask = UIViewAutoresizingFlexibleWidth;

        adView.delegate = self;

        [adView release];

        [cell autorelease]

}

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {

    return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {

    int adCellCount = [[self adCellsForSection:section] count];

    return [data count] + adCellCount; 
}

- (UITableViewCell *)tableView:(UITableView *)_tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    UITableViewCell *cell = [self adCellForRow:indexPath.row inSection:indexPath.section];

    if (cell == nil)    {

        //create other cells
    }

    return cell;
}

1 个答案:

答案 0 :(得分:0)

您正在发布AdBannerView,它可能甚至没有机会在您执行此操作之前将广告加载到视图中。您需要将自己的课程设置为广告的代表,然后您可以在广告可用时让广告在表格中插入一行,然后在广告可用时删除该行。广告并非始终可用,您将使用 - bannerViewDidLoadAd。