我有一个名为ViewController
的视图控制器,我有两种方法,hideAd
和showAd:
// 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调用这些方法,其中两个名为startview
和gameview
。我尝试实施此解决方案:How to show iAd on a certain SKScene and hide it on the other one,但setDelegate
对我不起作用。我可以用什么方式隐藏和展示我的横幅iads
?
答案 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];
}
}