加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ios – 非页内广告iAd没有关闭’X’按钮

发布时间:2020-12-14 19:37:06 所属栏目:百科 来源:网络整理
导读:我正在使用 Swift在我的应用中实施插页式广告.我设法让它显示插页式广告,但没有关闭’X’按钮来摆脱广告.为什么是这样? 解决方法 我也找不到为什么内置框架不提供关闭按钮的答案,但我最终使用以下解决方案. //iAD interstitial definition with custom plac
我正在使用 Swift在我的应用中实施插页式广告.我设法让它显示插页式广告,但没有关闭’X’按钮来摆脱广告.为什么是这样?

解决方法

我也找不到为什么内置框架不提供关闭按钮的答案,但我最终使用以下解决方案.

//iAD interstitial definition with custom placeHolderView and close button
//you do not need to add anything to interface builder. All is done with code

var interstitial:ADInterstitialAd!
var placeHolderView:UIView!
var closeButton:UIButton!

//Full Implemantation of iAD interstitial and delegate methods

 func cycleInterstitial(){
 // create a new interstitial. We set the delegate so that we can be notified 
    interstitial = ADInterstitialAd()
    interstitial.delegate = self;
}

func presentInterlude(){
    // If the interstitial managed to load,then we'll present it now.
    if (interstitial.loaded) {

        placeHolderView = UIView(frame: self.view.frame)
        self.view.addSubview(placeHolderView)

        closeButton = UIButton(frame: CGRect(x: 270,y:  25,width: 25,height: 25))
       //add a cross shaped graphics into your project to use as close button
        closeButton.setBackgroundImage(UIImage(named: "cross"),forState: UIControlState.Normal)
        closeButton.addTarget(self,action: Selector("close"),forControlEvents: UIControlEvents.TouchDown)
        self.view.addSubview(closeButton)


        interstitial.presentInView(placeHolderView)
    }
}

// iAd Delegate Mehtods

// When this method is invoked,the application should remove the view from the screen and tear it down.
// The content will be unloaded shortly after this method is called and no new content will be loaded in that view.
// This may occur either when the user dismisses the interstitial view via the dismiss button or
// if the content in the view has expired.

func interstitialAdDidUnload(interstitialAd: ADInterstitialAd!){
    placeHolderView.removeFromSuperview()
    closeButton.removeFromSuperview()
    interstitial = nil

    cycleInterstitial()
}


func interstitialAdActionDidFinish(_interstitialAd: ADInterstitialAd!){
    placeHolderView.removeFromSuperview()
    closeButton.removeFromSuperview()
    interstitial = nil

    println("called just before dismissing - action finished")

}

// This method will be invoked when an error has occurred attempting to get advertisement content.
// The ADError enum lists the possible error codes.
func interstitialAd(interstitialAd: ADInterstitialAd!,didFailWithError error: NSError!){
        cycleInterstitial()
}


//Load iAd interstitial
func dislayiAdInterstitial() {
    //iAd interstitial
    presentInterlude()
}


func close() {
    placeHolderView.removeFromSuperview()
    closeButton.removeFromSuperview()
    interstitial = nil

}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读