gpt4 book ai didi

objective-c - iAdSuite 错误在广告消失时留下空白

转载 作者:可可西里 更新时间:2023-11-01 04:59:56 26 4
gpt4 key购买 nike

我正在尝试将 iAdSuite 选项卡栏 View 实现合并到我的应用程序中,但我在套件和我的应用程序中发现了同样的问题。当广告出现时,我的内容 View 会正确调整大小并且广告会正确显示。当广告随后消失时,它会在它所在的位置留下空白。但是,我已确认我的内容 View 确实已调整回其原始高度,并且已缩小到其原始边界。您只是看不到广告所在的部分。我已经确保每个 View 都有一个 layoutIfNeeded 以及我能想到的几乎所有其他方法都无济于事。有什么想法吗?

enter image description here

编辑:我已经弄清楚问题出在哪里了。 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com