在skscene中隐藏景观iAd横幅

时间:2014-03-15 06:43:04

标签: xcode sprite-kit banner iad skscene

我有一个名为ViewController的视图控制器,我有两种方法,hideAdshowAd:

// Method is called when the iAd is loaded.
-(void)showAd:(ADBannerView *)banner {

// Creates animation.
[UIView beginAnimations:nil context:nil];

// Sets the duration of the animation to 1.
[UIView setAnimationDuration:1];

// Sets the alpha to 1.
// We do this because we are going to have it set to 0 to start and setting it to 1 will cause the iAd to fade into view.
[banner setAlpha:1];

//  Performs animation.
[UIView commitAnimations];

}

//当iAd无法加载时调用方法。

-(void)hideAd:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error {

// Creates animation.
[UIView beginAnimations:nil context:nil];

// Sets the duration of the animation to 1.
[UIView setAnimationDuration:1];

// Sets the alpha to 0.
// We do this because we are going to have it set to 1 to start and setting it to 0 will cause the iAd to fade out of view.
[banner setAlpha:0];

//  Performs animation.
[UIView commitAnimations];

}

我希望能够从我的skscenes调用这些方法,其中两个名为startviewgameview。我尝试实施此解决方案:How to show iAd on a certain SKScene and hide it on the other one,但setDelegate对我不起作用。我可以用什么方式隐藏和展示我的横幅iads

1 个答案:

答案 0 :(得分:0)

而不是链接alpha,移动它的位置。

-(void)showBannerView
{
    if (_adBannerViewIsVisible)
    {
        return;
    }


    if (_adBannerView)
    {
        _adBannerViewIsVisible = true;

        CGRect frame = _adBannerView.frame;

        if(app_dsp.isBannerOnTop)
        {
            frame.origin.x = 0.0f;
            frame.origin.y = -_adBannerView.frame.size.height;

        }
        else
        {
            frame.origin.x = 0.0f;
            frame.origin.y = self.size.height;// - _adBannerView.frame.size.height;
        }


        _adBannerView.frame = frame;

        [UIView beginAnimations:nil context:nil];
        [UIView setAnimationDuration:0.5];
        [UIView setAnimationCurve:UIViewAnimationCurveEaseOut];


        if(app_dsp.isBannerOnTop)
        {
            frame.origin.x = 0.0f;
            frame.origin.y = 0.0f;
        }
        else
        {
            frame.origin.x = 0.0f;
            frame.origin.y = self.size.height - _adBannerView.frame.size.height;
        }

        _adBannerView.frame = frame;

        [UIView commitAnimations];
    }

}



-(void)hideBannerView
{
    if (!_adBannerViewIsVisible)
    {
        return;
    }

    if (_adBannerView)
    {
        _adBannerViewIsVisible = false;


        [UIView beginAnimations:nil context:nil];
        [UIView setAnimationDuration:0.5];
        [UIView setAnimationCurve:UIViewAnimationCurveEaseOut];

        CGRect frame = _adBannerView.frame;

        if(app_dsp.isBannerOnTop)
        {
            frame.origin.x = 0.0f;
            frame.origin.y = -_adBannerView.frame.size.height ;
        }
        else
        {
            frame.origin.x = 0.0f;
            frame.origin.y = self.size.height ;
        }

        _adBannerView.frame = frame;

        [UIView commitAnimations];
    }

}