self.canDisplayBannerAds与约束冲突

时间:2014-02-10 23:10:02

标签: ios iphone autolayout

在iOS 7.1中,使用self.canDisplayBannerAds = YES来显示iAds似乎是在不应该推送内容时推送内容。

Here is a sample project running in the iOS 7.0.3 simulator

And here is the same project running in the iOS 7.1 simulator

如果我删除两个视图之间的垂直间距约束,则不会出现错误。

这只是iOS中的错误还是我的

问题

以下是示例项目,如果有人想尝试一下:

https://dl.dropboxusercontent.com/u/4521046/iPhoneUITest.zip

1 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,但是在iOS 8中。我有两个带圆角的按钮,用宽度除以2创建一个圆圈。

override func viewDidLayoutSubviews() {
    super.viewDidLayoutSubviews()
    self.instructionsButton.layer.cornerRadius = self.instructionsButton.frame.width / 2
}

在iAd显示之前,按钮不会是一个完整的圆圈。我补充说:

 self.originalContentView.layoutSubviews() 

进入我的viewDidLayoutSubviews:

override func viewDidLayoutSubviews() {
    super.viewDidLayoutSubviews()
    self.originalContentView.layoutSubviews()
    self.instructionsButton.layer.cornerRadius = self.instructionsButton.frame.width / 2
}

这修复了按钮以对加载有正确的约束。 canDisplayBannerAds的文档声明:“影响是视图控制器的视图属性将不再返回最初提供的视图,它将返回新容器。要访问原始视图,请使用originalContentView属性。”你必须记住使用originalContentView进行self.view。