【发布时间】:2023-03-11 14:52:02
【问题描述】:
我有一个只能在 iPhone 上横向运行的应用。我已实施 iAd 以在屏幕底部放置横幅。这在 Xcode 4 中编译时效果很好,但现在在 Xcode 5 中出现了问题。当用户在旧版本中点击广告时,全尺寸广告将纵向加载。但是现在当用户点击广告时,它会加载广告,但只有屏幕的上半部分有广告 - 底部保持空白。它在模拟器和使用“测试”广告的测试设备上正常工作,但现在应用程序已上线,但已损坏。
一切都在 iPad 上完美运行,不仅限于横向。我已经仔细检查了我的代码,一切都与文档所述相同。苹果对此帮助不大。有什么想法吗?
更新:我又找到了 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 构建了故事板布局,因此发生了一些变化。我真的不在乎(实际上更喜欢)不显示状态栏,但我不知道如何调试这些约束。
【问题讨论】:
-
Info.plist 和视图控制器支持哪些界面方向?
-
iPhone 的横向左侧和横向右侧。
-
您在使用情节提要吗?那里有什么东西会影响旋转和调整大小吗?您可以使用单个空白视图控制器创建一个新项目并像您一样设置景观并尝试重现该问题吗?我有一个纵向和横向应用程序,它在 iOS 8.0 上仅显示 iAd 纵向。
-
我正在使用故事板。但是创建一个新项目无济于事 - 在模拟器和开发设备中一切正常。其苹果签名的应用程序已损坏。
-
会的。使用另一个空的代码签名和安装的设备应用程序来重现错误,您可以证明它存在,它是如何发生的,并在bugreport.apple.com 提交报告以修复它。我经常发现通过重新创建错误的步骤会发现错误是我的错并解决问题。我并不是要粗鲁,但是通过公开发布的示例项目,我可以看到它在我的设备上的行为,或者注意到代码中是否有问题,并能够提供更多帮助。
标签: objective-c iphone ios8 constraints iad