Swift - 在横幅加载时更改应用程序。 - xcode 6 GM

问题描述:

我一直在研究一个主要基于文本的应用程序,其底部有一个Iadbanner。Swift - 在横幅加载时更改应用程序。 - xcode 6 GM

然而,众所周知,Iads并不总是存在。所以我希望能够动态更新我的textView的高度,所以当横幅被隐藏时,textView占据了浪费的空间。并在加载横幅时调整其大小。

这是我目前拥有的视图控制器有问题

import UIKit 
import iAd 

class DetailVC: UIViewController, UITextViewDelegate, ADBannerViewDelegate { 

//Our label for displaying var "Items/cellName" 
@IBOutlet var imageViewOutlet: UIImageView! 

//connect in IB connection inspector with your ADBannerView 
@IBOutlet var adBannerView: ADBannerView! 

//Receiving variable assigned to our mainVC var "items" 
var cellName: String = "" 
var imageView: UIImageView = UIImageView() 
var image = UIImage(named: "handcuffs.png") 
var textViewText: String = "" 
var textView: UITextView = UITextView(frame: CGRect(x: 5.0, y: 238.0, width: 315.00, height: 283.00)) 
//height = 332 for full screen 283 for small 

override func viewDidLoad() { 
    super.viewDidLoad() 
    println("+--------------------+") 
    println("| Detail view loaded |") 
    println("+--------------------+") 

    // Iad stuff 
    self.adBannerView.delegate = self 
    self.canDisplayBannerAds = true 
    self.adBannerView.hidden = true //hide until ad loaded 

    //Setting up the textView 
    textView.text = textViewText 
    textView.editable = false 
    textView.backgroundColor = UIColor.clearColor() 
    textView.font = UIFont(name: "Helvetica", size: 15) 

    //adding textview as subview 
    self.view.addSubview(textView) 

    //ImageViewOutlets 
    imageViewOutlet.image = image 

    //Assign your string var to your navbar title 
    self.title = cellName 

func bannerViewWillLoadAd(banner: ADBannerView!) { 
    NSLog("bannerViewWillLoadAd") 
} 

func bannerViewDidLoadAd(banner: ADBannerView!) { 
    NSLog("bannerViewDidLoadAd") 
    //self.textView.removeFromSuperview() 
    //textView = UITextView(frame: CGRect(x: 0.0, y: 238.0, width: 320.00, height: 283.00)) 
    //self.view.addSubview(textView) 
    self.adBannerView.hidden = false //now show banner as ad is loaded 
} 

func bannerViewActionDidFinish(banner: ADBannerView!) { 
    NSLog("bannerViewActionDidFinish") 
    //optional resume paused app code 
} 

func bannerViewActionShouldBegin(banner: ADBannerView!, willLeaveApplication willLeave: Bool) -> Bool { 
    NSLog("bannerViewActionShouldBegin") 
    //optional pause app code 
    return true 
} 

func bannerView(banner: ADBannerView!, didFailToReceiveAdWithError error: NSError!) { 
    NSLog("didFailToReceiveAdWithError") 
} 

//... your class implementation code 
} 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    // Dispose of any resources that can be recreated. 
} 

}

在函数“bannerViewDidLoadAd”注释掉的代码是什么,我认为将有固定我的问题。可悲的是,功能似乎永远不会运行?我对Iads不是很熟悉,所以希望有人能给我提示如何在广告加载时更改textView的高度。

CanDisplayBannerAds:

该设置将启用横幅广告显示的自动管理与视图控制器。需要注意的是,这将通过在视图控制器视图上方插入新的容器视图来修改视图控制器的视图层次结构。影响是视图控制器的视图属性将不再返回最初提供的视图,它将返回新的容器。要访问原始视图,请使用originalContentView属性。

因此,删除此行:

self.canDisplayBannerAds = true 

一切都应该工作。