ios - 实现 Inneractive/Inneractive 横幅广告 - 广告定位问题

标签 ios objective-c banner-ads

我正在尝试使用 Inneractive Ad SDK 5+在我的应用程序中,我想将广告放在底部。在我尝试过的每一种情况下,它都将始终位于屏幕中间,水平和垂直居中。

代码:

self.myAdView = [[IaAdView alloc]    
initWithAppId:@"MyAppID_iPhone" adType:IaAdType_Banner delegate:self];

self.myAdView.adConfig.refreshIntervalInSec = 30;

[[InneractiveAdSDK sharedInstance] loadAd:self.myAdView];

委托(delegate)方法:

- (void)InneractiveAdLoaded:(IaAd *)adView {
    NSLog(@"AD LOADED METHOD CALLED");

    // Here I tried many things I found online without any effect
    [self.view addSubview:self.myAdView];
}

这里是我如何在 viewcontroller.m 文件的顶部实现属性:

@interface ViewController () <InneractiveAdDelegate>

@property (nonatomic, retain) IaAdView* myAdView;
@end

@implementation ViewController
@synthesize myAdView = _myAdView;

我敢肯定这一定只是一件小事,但我想不通。我找到了许多包含 initWithFrame 的解决方案,但这在这种情况下不可用。

如有任何帮助,我们将不胜感激。

更新 1:

我试过:

- (void)InneractiveAdLoaded:(IaAd *)adView {
    NSLog(@"AD LOADED METHOD CALLED");
    self.myAdView.frame=CGRectMake(x,y,width,height); // With any number and random number

    self.myAdView.frame=CGRectOffset(self.myAdView.frame, 0, yOffset); // With any number and random number
    [self.view addSubview:self.myAdView];
}

没有任何帮助。广告保持绝对居中。我开始认为设置有问题,但除了定位之外,一切正常。见下图。

app screen

更新 2:

尝试了以下但没有成功。 ios8 显示横幅在屏幕上居中,而 ios7 出于某种原因在添加该行后根本不显示。

- (void)InneractiveAdLoaded:(IaAd *)adView {

     NSLog(@"AD LOADED METHOD CALLED");
    self.myAdView.frame = CGRectMake(0, self.view.frame.size.height -     self.myAdView.frame.size.height , self.view.frame.size.width,    self.myAdView.frame.size.height);

    [self.view addSubview:self.myAdView];

}

最佳答案

这是一个可行的解决方案: 您在这里有两个选择 -

  1. 将您的 adView 包装在外部 UIView 中,然后您就拥有了完全的控制权
  2. 在“InneractiveAdLoaded:”事件中更新 adView 的框架

无论如何:在调用“loadAd:”SDK 方法之前,必须将 adView 添加到它的 superView。

如果您有任何问题,请告诉我。

更新: 选项 2:

#import "ViewController.h"
#import "InneractiveAdSDK.h"

@interface ViewController () <InneractiveAdDelegate>

@property (nonatomic, strong) IaAdView *adView;

@end

@implementation ViewController {}

- (void)viewDidLoad {
    [super viewDidLoad];

    self.adView = [[IaAdView alloc] initWithAppId:@"<Your ad unit ID>" adType:IaAdType_Banner delegate:self];

    [self.view addSubview:self.adView];
    [[InneractiveAdSDK sharedInstance] loadAd:self.adView];
}

- (void)positionAd {
    const CGFloat x = (self.view.bounds.size.width - self.adView.frame.size.width) / 2.0f;
    const CGFloat y = self.view.bounds.size.height - self.adView.frame.size.height;

    self.adView.frame = CGRectMake(x, y, self.adView.frame.size.width, self.adView.frame.size.height);
}

#pragma mark - InneractiveAdDelegate

- (void)InneractiveAdLoaded:(IaAd *)adView {
    [self positionAd];
}

- (void)InneractiveDefaultAdLoaded:(IaAd *)adView {
    [self positionAd];
}

- (UIViewController *)viewControllerForPresentingModalView { return self; }

@end

enter image description here

关于ios - 实现 Inneractive/Inneractive 横幅广告 - 广告定位问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31337109/

相关文章:

php - 从mysql获取均匀分布的随机行(Flash横幅广告)

IOS 在 App Store 构建中崩溃

ios - 显示单元格边界之外的标签

android - 放置横幅广告,使其位于下方并与 ViewPager 分开

android - 如何在不同屏幕上显示相同的广告横幅?

objective-c - UITableViewCellAccessoryDe​​tailDisclosureButton 和 UITableViewCellAccessoryDisclosureIndicator 之间有什么区别吗

ios - 在 uitableview 中过滤后执行 segue

iphone - "Back"按钮没有出现在 UINavigationController 中

objective-c - 通过 NSTimer 添加 SpriteNode 时,SKScene 未检测到接触

ios - Swift:使用对象工厂导致无法识别的选择器