Swift - 加载横幅时更改应用程序。 - Xcode 6 通用汽车

标签 swift height uitextview iad xcode6

我一直在开发一个主要基于文本的应用程序,底部有一个 Iadbanner。

但是众所周知,Iad 并不总是存在。所以我希望能够动态更新我的textView的高度,这样当横幅隐藏时,textView就会占用浪费的空间。并在加载横幅时调整其大小。

这是我目前所拥有的有关 Viewcontroller 的内容

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:

Set this to enable automatic management of banner ad display with the view controller. It's important to note that this will modify the view hierarchy of the view controller by inserting a new container view above the view controller's view. The impact is that the view controller's view property will no longer return the originally provided view, it will return the new container. To access the original view, use the originalContentView property.

所以,删除这一行:

 self.canDisplayBannerAds = true

一切都应该有效。

关于Swift - 加载横幅时更改应用程序。 - Xcode 6 通用汽车,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25776892/

相关文章:

swift - 防止用户在 UITextView 中输入多个新行

ios - 如何使用 AVPlayer 从数组中选择后播放下一首轨道

ios - 在没有 GIDSignInButton 的情况下以编程方式启动 Google 登录

css - 100% 高度 div 没有在 View 区域之外获得边框

header - 动态 heightForHeaderInSection

ios - 在 UITextView 长文本中添加多张图片

swift - 引用嵌套在导航和选项卡 Controller 中的 ViewController?

ios - 在 stackview 中隐藏按钮会破坏 tableview 中的布局

jquery - jquery hide() 后的 div 高度概率

ios - 检测 UITextView 上的点击仅检测取消