Ich habe versucht herauszufinden, wie iAds in meinen Spritekit-Szenen versteckt und angezeigt werden. Zur Zeit habe ich es Setup wie folgt aus:Ausblenden/Anzeigen von iAds in Spritekit
ViewController.h
#import <UIKit/UIKit.h>
#import <SpriteKit/SpriteKit.h>
#import <iAd/iAD.h>
@interface ViewController : UIViewController <ADBannerViewDelegate> {
ADBannerView *adView;
}
-(void)showsBanner;
-(void)hidesBanner;
@end
ViewController.m
#import "ViewController.h"
#import <UIKit/UIKit.h>
#import <iAd/iAD.h>
#import "MyScene.h"
#import <SpriteKit/SpriteKit.h>
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
// Configure the view.
SKView * skView = (SKView *)self.view;
skView.showsFPS = NO;
skView.showsNodeCount = NO;
// Create and configure the scene.
SKScene * scene = [MyScene sceneWithSize:skView.bounds.size];
scene.scaleMode = SKSceneScaleModeAspectFill;
// Present the scene.
[skView presentScene:scene];
self.canDisplayBannerAds = YES;
adView = [[ADBannerView alloc] initWithFrame:CGRectZero];
adView.frame = CGRectOffset(adView.frame, 0, 0.0f);
adView.delegate=self;
[self.view addSubview:adView];
self.bannerIsVisible=NO;
}
-(void)bannerViewDidLoadAd:(ADBannerView *)banner {
if (!self.bannerIsVisible) {
[UIView beginAnimations:@"animatedAdBannerOn" context:NULL];
banner.frame = CGRectOffset(banner.frame, 0.0, 0.0);
[UIView commitAnimations];
self.bannerIsVisible = YES;
}}
-(void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error {
if (!self.bannerIsVisible) {
[UIView beginAnimations:@"animatedAdBannerOff" context:NULL];
banner.frame = CGRectOffset(banner.frame, 0.0, 0.0);
[adView setAlpha:0];
[UIView commitAnimations];
self.bannerIsVisible = NO;
}
}
-(void)hidesBanner {
NSLog(@"HIDING BANNER");
[adView setAlpha:0];
self.bannerIsVisible = NO;
}
-(void)showsBanner {
NSLog(@"SHOWING BANNER");
[adView setAlpha:1];
self.bannerIsVisible = YES;
}
etc...
@end
Dann in meiner Szene packe ich meine Viewcontroller mit einem Zeiger:
ViewController *controller;
controller = [[ViewController alloc] init];
[controller hidesBanner];
Mein nslog läuft in der Konsole, damit ich weiß, dass es th geht Rau. Aber das Banner wird sich nicht verstecken. Irgendwelche Gedanken? Ich bin ziemlich neu mit objektiven c, also habe ich das Gefühl, ich mache nur etwas dummes.
Warum verwenden 'Alpha' statt' versteckte' Eigenschaft der ADBannerView (erbt von UIView)? – Larme
Aufgrund der Antwort habe ich hier gefunden: http: //stackoverflow.com/questions/20577465/is-it-allged-to-hide-iads-even-when-they-are-available Mit der ausgeblendeten Eigenschaft scheint nicht zu behebe mein Problem. – Negora