我有一个中等尺寸的iAd框架(300x250),我想将其居中。首先让我说我将其正确地放置在视图控制器中,运行了模拟器,并且显示没有问题。然后,我添加了自动约束以水平和垂直居中。在情节提要预览中,它起作用了,但是当我在实际的模拟器中运行它时,却找不到广告。我输出了一条成功语句,因此它确实加载了所有内容,但没有出现。消除约束纠正了它。
因此,我尝试以编程方式进行操作。我创建了必要的委托以及所有内容,而我看到的执行代码与其他代码非常相似,所以我不知道为什么这行不通。无论我将CGRect赋予什么价值,广告在任何地方都看起来一样。
代码:
import UIKit
import iAd
class replayAdViewController: UIViewController, ADBannerViewDelegate {
@IBOutlet var bannerView: ADBannerView!
override func viewDidLoad() {
super.viewDidLoad()
bannerView!.delegate = self
}
func bannerViewDidLoadAd(banner: ADBannerView!)
{
println("success, banner loaded")
var width = self.view.frame.width
var height = self.view.frame.height
banner.frame = CGRectMake(width, height, 300, 250)
self.view.addSubview(banner) //Add banner to view (Ad loaded)
}
func bannerView(banner: ADBannerView!, didFailToReceiveAdWithError
error: NSError!)
{
println("failed to load ad, removed")
println(error)
//banner.removeFromSuperview() //Remove the banner (No ad)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
我尝试将CGRect语句移出函数,并移至viewDidLoad并使用bannerView.frame等。我猜我在某种程度上将横幅与CGRect的属性或其他内容链接不正确,但是没有错误,所以我不这样做不知道另外,我不明白为什么自动约束仅将其垂直和水平的中心弄乱了,但是解决任何一个问题都会对我有所帮助。
谢谢。
最佳答案
假设您的店铺设置正确,则应将广告放置在didMoveToView
中,如下所示:bannerView.center = self.view.center
另外,在didFailToReceiveAdWithError
中,如果您隐藏横幅:bannerView.hidden = true
,效果会更好。您无需使用self.view.addSubview(banner)
这一行,因为您已将横幅广告添加到情节提要中的视图中。横幅的大小也可以使用约束在情节提要中设置。
关于ios - 在Swift中以编程方式更改iAd排名,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32086101/