- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在尝试将 iAdSuite 选项卡栏 View 实现合并到我的应用程序中,但我在套件和我的应用程序中发现了同样的问题。当广告出现时,我的内容 View 会正确调整大小并且广告会正确显示。当广告随后消失时,它会在它所在的位置留下空白。但是,我已确认我的内容 View 确实已调整回其原始高度,并且已缩小到其原始边界。您只是看不到广告所在的部分。我已经确保每个 View 都有一个 layoutIfNeeded 以及我能想到的几乎所有其他方法都无济于事。有什么想法吗?
编辑:我已经弄清楚问题出在哪里了。 Apple 的示例显然在每次调用 showBannerView: 时将 _bannerView 添加到 self.view,但从不删除 View 。这仍然没有完全意义,因为横幅 View 被移到了屏幕外,但是删除它确实解决了空白问题。我的解决方案如下,但如果有人有更优雅的方法,请告诉我。
- (void)layoutAnimated:(BOOL)animated {
if (UIInterfaceOrientationIsPortrait(self.interfaceOrientation)) {
_bannerView.currentContentSizeIdentifier = ADBannerContentSizeIdentifierPortrait;
} else {
_bannerView.currentContentSizeIdentifier = ADBannerContentSizeIdentifierLandscape;
}
CGRect contentFrame = self.view.bounds;
contentFrame.origin = CGPointMake(0.0, 0.0);
CGRect bannerFrame = _bannerView.frame;
if (_bannerView.bannerLoaded) {
contentFrame.size.height -= _bannerView.frame.size.height;
bannerFrame.origin.y = contentFrame.size.height;
} else {
bannerFrame.origin.y = contentFrame.size.height;
}
[UIView animateWithDuration:animated ? 0.25 : 0.0 animations:^{
_contentView.frame = contentFrame;
[_contentView layoutIfNeeded];
_bannerView.frame = bannerFrame;
}
completion:^(BOOL finished) {
if (!_bannerView.bannerLoaded) {
[_bannerView removeFromSuperview];
_bannerView=nil;
}
}];
}
- (void)showBannerView:(ADBannerView *)bannerView animated:(BOOL)animated
{
_bannerView = bannerView;
if (![self.view.subviews containsObject:_bannerView])
[self.view addSubview:_bannerView];
[self layoutAnimated:animated];
}
- (void)hideBannerView:(ADBannerView *)bannerView animated:(BOOL)animated
{
[self layoutAnimated:animated];
}
最佳答案
我遇到了同样的问题。在 hideBannerView 委托(delegate)方法中从 super View 中删除横幅 View 似乎已经解决了它。
- (void)hideBannerView:(ADBannerView *)bannerView animated:(BOOL)animated
{
[self layoutAnimated:animated];
[_bannerView removeFromSuperview];
_bannerView = nil;
}
关于objective-c - iAdSuite 错误在广告消失时留下空白,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12785055/
我正在尝试将 iAdSuite 选项卡栏 View 实现合并到我的应用程序中,但我在套件和我的应用程序中发现了同样的问题。当广告出现时,我的内容 View 会正确调整大小并且广告会正确显示。当广告随后
我正在尝试将 NavigationBanner iAdSuite 示例实现到我的项目中,以便我可以在多个 View Controller 之间共享单个 AdBannerView 实例,但我不断收到以下
从 Apples iADSuite 选项卡式示例中,有一个用委托(delegate)定义的变量。 UIViewController *_currentController; 后来它被这样转换 _cur
我是一名优秀的程序员,十分优秀!