iphone - 在bannerViewActionDidFinish : Bug or Not?之后AdBannerView移动到 super View 的顶部

标签 iphone ios objective-c iad adbannerview

请随意引用 GitHub 上托管的示例 Xcode 项目,该项目演示了此问题:IAdBannerBugDemo

当 UITableView 下方和 UITabBar 上方显示 AdBannerView 时,调用 bannerViewActionDidFinish: 后,AdBannerView 会错误地移动到其父 View 的顶部。

我的问题是:

  1. 是否有有效的解决方法,而不是造成手部堵塞?如果是这样,解决方法是什么?
  2. 这是 iOS SDK 的错误吗?

首先,这里有两张屏幕截图说明了我的问题。

  1. 第一个屏幕截图中显示的按钮。
  2. 等待 iAd 加载。
  3. 点击 iAd。
  4. 按全屏 iAd 左上角的黑色 X 关闭 iAd。
  5. 请注意,iAd 移至顶部(第二张屏幕截图)

按所示按钮并等待 iAd 加载

Ad loaded

按/点击 iAd 横幅即可全屏查看广告

press/click iAd banner

关闭全屏 iAd,并注意 iOS SDK 将 iAD 横幅移至其 super View 的顶部

bug illustration

通过命中断点等,我注意到 [UIViewControllerWrapper setFrame:] 负责重新定位 AdBannerView,但这完全超出我的控制范围,因为它是 Apple 框架的一部分。

解决此问题的唯一方法是通过在负责正确放置 AdBannerView 的 View Controller 中重写 viewWillLayoutSubviews 来更正 AdBannerView 的位置。

但即使这种解决方法也会导致 AdBannerView 从其 super View 的顶部跳转到正确的位置(表格 View 下方、选项卡栏上方,包含在表格 View 的 super View 中)。

一个好的答案是发布示例代码,说明如何克服这个棘手的问题。

I have started a thread on Apple's Developer Forums ,还有。因此,请随时查阅此主题。

最佳答案

当使用 iAd 横幅和 uitableviewcontroller 时,您可以将其放置在 tableview 的标题中,因为 table viewcontroller 控制 tableview 的框架和边界。如果您想在 tableview 上方或下方添加横幅,您必须有一个 uiviewcontroller 并将 uitableview 添加到其中,以便您可以从 uiviewcontroller 控制 table view 的框架和边界。横幅将保留在您放置的位置,并且您必须使用横幅在 View 中和 View 外的动画来对 TableView 框架和边界进行动画处理。

使用 uitableviewcontroller 没有解决办法。并且使用 uiviewcontroller 只能使用动态 tableciew。静态 TableView 仅存在于uitableviewcontroller中。我希望这有帮助!

关于iphone - 在bannerViewActionDidFinish : Bug or Not?之后AdBannerView移动到 super View 的顶部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16157294/

相关文章:

iphone - 如果你可以买两本关于 iOS 开发的书,你会选择哪本?

iphone - 你能说出 Phonegap iOS 应用程序中的调试过程吗?

iphone - 如何实现 uislider 以便它可以用作 AVQueueplayer 中的洗涤器

ios - 删除绘图并捕获 UIView 绘图的屏幕截图无法正常工作

iOS权限描述限制

ios - 即使在滚动时也允许 UITableViewCell 更新内容

ios - 如何使用 iOS 状态恢复来恢复 UIPopoverController?

objective-c - 将 libxml2 添加到项目时出错

iphone - 如何在下载的同时开始播放AVAudioPlayer?

ios - 我如何在 iOS Swift 中通过聚类解析自定义标记图标