iAd不在iPhone中工作

时间:2015-01-05 22:56:49

标签: objective-c iphone ios8 constraints iad

我有一款只在iPhone上运行的应用程序。我已经实施了iAd,在屏幕底部放置横幅。这在Xcode 4中编译时效果很好但现在在Xcode 5中存在问题。当用户在旧版本中点按广告时,完整尺寸的广告将以纵向加载。但现在,当用户点击广告时,它会加载广告,但只有屏幕的上半部分有广告 - 底部仍为空白。它可以在模拟器和测试设备上使用“测试”广告正常工作,但现在应用程序已经上线,它已经坏了。

一切都在iPad上完美运行,不仅限于风景。我已经仔细检查了我的代码,一切都像文档所述。苹果对此并不乐观。有什么想法吗?

enter image description here

更新:我在拼图中找到了2件。这仅适用于iOS 8.当用户点击横幅广告时,我会收到“无法同时满足约束”错误,其中包含以下内容:

"<NSLayoutConstraint:0x7c948310 H:[UIView:0x7c947e80(219)]>",
"<NSLayoutConstraint:0x7c94edf0 H:[UILabel:0x7c94ecb0'Elapsed\n0:00'(62)]>",
"<NSLayoutConstraint:0x7c94f180 H:[UIView:0x7c94a430]-(0)-[UILabel:0x7c94ecb0'Elapsed\n0:00']>",
"<NSLayoutConstraint:0x7c94f210 UIView:0x7c94a430.width == UIView:0x7c94a320.width>",
"<NSLayoutConstraint:0x7c94f270 H:|-(0)-[UIView:0x7c94a430]   (Names: '|':UIView:0x7c9479e0 )>",
"<NSLayoutConstraint:0x7c94f2d0 H:[UILabel:0x7c94ecb0'Elapsed\n0:00']-(-1)-[UIView:0x7c94a320]>",
"<NSLayoutConstraint:0x7c94f390 H:[UIView:0x7c94a320]-(1)-[UIView:0x7c947e80]>",
"<NSLayoutConstraint:0x7c94f3f0 UIView:0x7c9479e0.centerX == UIView:0x7c947e80.centerX>",
"<NSLayoutConstraint:0x7c9504b0 H:|-(0)-[UIView:0x7c9479e0]   (Names: '|':UIView:0x7c94f920 )>",
"<NSLayoutConstraint:0x7c9504e0 H:[UIView:0x7c9479e0]-(0)-|   (Names: '|':UIView:0x7c94f920 )>",
"<NSLayoutConstraint:0x7c971e90 'UIView-Encapsulated-Layout-Width' H:[UIView:0x7c94f920(320)]>"

"Will attempt to recover by breaking constraint "
"<NSLayoutConstraint:0x7c948310 H:[UIView:0x7c947e80(219)]>"

而且,状态栏现在由我的视图覆盖,而在ios7中则显示。我最初为ios7构建了故事板布局,所以事情发生了变化。我并不关心(实际上更喜欢)没有显示状态栏,但我无法弄清楚如何调试这些约束。

1 个答案:

答案 0 :(得分:1)

您使用的是故事板吗?是否会出现影响轮换和尺寸的因素?我建议使用一个空白视图控制器创建一个新项目,然后设置景观,并尝试在那里重现问题。

可能影响到这一点的一些事情是:

通常我发现通过重新创建错误的步骤会发现错误,让我看到工作版本和我的版本之间的差异,并最终纠正问题。


我发现将这些与故事板中的内容进行比较最容易。像这样解密它们refer to the visual format language

看起来确保特定视图的约束水平 219等于其超级视图正在被破坏。检查你的故事板是否有任何自动布局警告或错误,我发现它在Xcode 6中非常有帮助。

你有几个约束,如果你可以在调试时删除一些可以使事情变得更简单的约束。最后,如果您的子视图都相互引用可能会使约束更加困难,那么引用超级视图的情况可能有助于防止冲突。

以下是一些调试参考: