2015-07-10 66 views
1

我想在我的應用程序中使用Inneractive Ad SDK 5+,我想將廣告定位在底部。在任何情況下,我都試過它會始終在屏幕中間,水平和垂直居中。實施Inneractive/Inneractive橫幅廣告 - 廣告定位問題

代碼:

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

self.myAdView.adConfig.refreshIntervalInSec = 30; 

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

委託方法:

- (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]; 

} 
+0

爲什麼你使用'self.myAdView'?你還在創建一個屬性嗎? –

+0

是的。 SDK請求實現它,以便像我上面做的編輯一樣進行理解。 – SunnySonic

+0

將'@synthesize myAdView = _myAdView;'更改爲'@synthesize myAdView;'另外,您能否提供一個指向SDK的鏈接,以便我可以嘗試實現該橫幅。 –

回答

2

這裏是一個有效的解決方案: 您這裏有兩個選擇 -

  1. 包裝ÿ我們在外部的UIView AdView的,然後你必須完全控制
  2. 更新的AdView對框架「InneractiveAdLoaded:」事件

ANYWAY:AdView中必須加入它叫「loadAd之前是上海華: 'SDK方法。

如果您有任何問題,請告訴我。

更新: 選項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

+0

謝謝。你有我的代碼示例嗎?特別是選項2聽起來有趣。 – SunnySonic

+0

我已經更新了答案。 – Nikita

+0

請標記爲正確答案,以防情況有所幫助。謝謝。 – Nikita

0

嘗試設置它的框架是這樣的:

self.myAdView.frame=CGRectMake(x,y,width,height); 

其中X,Y,寬度,高度是你所需的位置和大小。

或者它已經很好地利用X座標位置,寬度和高度,你可以使用:

self.myAdView.frame=CGRectOffset(self.myAdView.frame, 0, yOffset); 

其中Y偏移是你多麼希望它移動上的座標。一定要使用self.view.frame來計算它,而不是使用確切的數字,所以它在每個設備的底部。

+0

感謝您的及時回覆Uros19。不幸的是它沒有工作。請參閱我上面的更新問題。 – SunnySonic

+0

嘗試使用在(void)InneractiveAdLoaded:(IaAd *)adView方法中作爲參數傳遞的adView對象。所以,而不是self.myAdView.frame,嘗試設置adView.frame – Uros19

+0

試過。不幸的是,都是一樣的沒有任何東西在動。奇怪的是,我正在嘗試它在ios8模擬器和ios7 iphone 4上。它也是一個通用的應用程序。當我在ios7上放置一條線時,廣告完全消失,在ios8模擬器上,它停留在中心位置。 – SunnySonic

0

要將橫幅定位在您的UIView的底部,您需要更改其frame

self.myAdView.frame = CGRectMake(x, y, width, height); 

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); 
  • x - 設置爲0
  • y的起源 - 設置原點到UIView的高度。但是這會讓它出現在屏幕的底部。所以,我們必須減去我們self.myAdView的高度,它移動到屏幕上:self.view.frame.size.height - self.myAdView.frame.size.height
  • width - 它設置爲UIView寬度:self.view.frame.size.width
  • height - 將其設置爲我們self.myAdView的高度:self.myAdView.frame.size.height
+0

謝謝。很好的解釋和它是有道理的。但不幸的是,它並沒有改變任何東西請參閱我上面的編輯。 – SunnySonic

+0

我怎麼發送給你?我認爲你需要創建一個無干擾的登錄來下載它... https://staging.inner-active.com/iamp/publisher/downloadsdk?sdk=files/InneractiveAdSDK-iOS-v5.0.5。zip&sdkName = iOSNative%202 – SunnySonic

+0

這裏還有實施手冊:https://inneractive.jira.com/wiki/display/DevWiki/iOS+SDK+guidelines在第3.8點下方有一個方法來集中我沒有實現的廣告。我嘗試了調整,但我失敗了。我也不確定它是否曾被稱爲。如果我想以這種方式實施,我將如何去做呢? – SunnySonic