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
一切都应该工作。