2014-09-10 77 views
0

我一直在研究一個主要基於文本的應用程序,其底部有一個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的高度。

回答

1

CanDisplayBannerAds:

該設置將啓用橫幅廣告顯示的自動管理與視圖控制器。需要注意的是,這將通過在視圖控制器視圖上方插入新的容器視圖來修改視圖控制器的視圖層次結構。影響是視圖控制器的視圖屬性將不再返回最初提供的視圖,它將返回新的容器。要訪問原始視圖,請使用originalContentView屬性。

因此,刪除此行:

self.canDisplayBannerAds = true 

一切都應該工作。