2010-08-04 5 views
0

Quelle est la meilleure pratique pour placer des annonces dans vos cellules de vue de table? Voici mon code, qui fonctionne jusqu'à ce que la bannière reçoive l'événement transitionToNextBanner, qui bloque alors mon application.ADBannerView dans UITableViewCell

UITableViewCell *cell = [tableVw dequeueReusableCellWithIdentifier:@"BannerAdCellIdentifier"]; 
if (cell == nil) { 
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"BannerAdCellIdentifier"] autorelease]; 
} 
[[cell viewWithTag:9999] removeFromSuperview]; 

ADBannerView *adView = [[ADBannerView alloc] initWithFrame:CGRectMake(0, 0, 320, 50)]; 
adView.tag = 9999; 
adView.requiredContentSizeIdentifiers = [NSSet setWithObject:ADBannerContentSizeIdentifier320x50]; 
adView.currentContentSizeIdentifier = ADBannerContentSizeIdentifier320x50; 
[cell addSubview:adView]; 
[adView release]; 

return cell; 

Je pensais que je ne définissais pas le délégué de l'annonce comme étant à l'abri de tout problème lié à la mémoire.

Répondre

1

Apple rejettera très probablement votre application si vous placez des bannières iAd dans des cellules de vue de table. La raison en est que les cellules de vue de tableau ont la possibilité de se déplacer sur l'écran et hors de l'écran plusieurs fois (ce qui entraîne parfois recréer/recharger la cellule ou son contenu).

Comme les iAds payent à la fois par clic et par impression, ce serait un moyen facile de générer beaucoup d'impressions et d'obtenir plus d'argent grâce aux impressions. Apple ne va pas le permettre.

Les instructions de l'iAd stipulent que les bannières iAd doivent être dans un emplacement fixe et non dans une vue défilante. Il indique également que si un iAd ne parvient pas à charger pour une raison quelconque, votre application ne doit pas laisser un espace vide où il aurait été. Le dernier point peut être purement esthétique, je ne sais pas.

+0

Damn. Tu as raison. Merci. –