2015-05-02 177 views
2

有沒有人知道如何以編程方式顯示50pt高度的GADBannerView?GADBannerView沒有設置高度

在我viewDidLoad中,

int heightOfBanner = 50; 
GADBannerView *banner = 
[[GADBannerView alloc] 
initWithAdSize:GADAdSizeFullWidthPortraitWithHeight(heightOfBanner) 
origin:CGPointMake(0, CGSizeFromGADAdSize(kGADAdSizeBanner).height)]; 
banner.adUnitID = @"ca-app-pub-xxxxxxxxxxxxxxxxxxxxxxxxxxx"; 
banner.rootViewController = self; 
[self.view addSubview:banner]; 

[banner loadRequest:[GADRequest request]]; 

以上代碼簡化版,顯示任何東西。

但是當heightOfBanner設置爲較高值(例如200)時,它運行良好(但橫幅的高度不是50)。

我podfile低於:

source 'https://github.com/CocoaPods/Specs.git' 
platform :ios, '8.0' 
pod 'Google-Mobile-Ads-SDK', '~> 7.0' 

,我也 「吊艙安裝」 成功。

回答

1

請勿使用精確的尺寸繪製GADBannerView。您應該相對於屏幕尺寸設置其框架和原點。這將在屏幕底部顯示您的GADBannerView

// Get device screen size 
    // For example, screenBounds on an iPhone 6 will look like this 
    // screenBounds.origin.x == 0 
    // screenBounds.origin.y == 0 
    // screenBounds.size.width == 375 
    // screenBounds.size.height == 667 
    CGRect screenBounds = [[UIScreen mainScreen] bounds]; 

    // Setup AdMob view 
    // Create the GADBannerView 
    adMobView = [[GADBannerView alloc] initWithAdSize:kGADAdSizeBanner]; 

    // Use your BANNER_UNIT_ID 
    adMobView.adUnitID = BANNER_UNIT_ID; 
    adMobView.rootViewController = self; 
    [adMobView loadRequest:[GADRequest request]]; 

    // This sets the frame origin at (0,0) which would be the top left of the device screen 
    // screenBounds.size.width and adMobView.bounds.size.height sets the size of the GADBannerView 
    [adMobView setFrame:CGRectMake(0, 0, screenBounds.size.width, adMobView.bounds.size.height)]; 

    // This will take the center of our GADBannerView and move it to a point (x,y) 
    // We want our GADBannerView.center in the center of the device screen 
    // So lets get the width of our screen and divide it by 2. We do this with screenBounds.size.width/2 
    // We also want our GADBannerView to be at the bottom of the screen 
    // So lets get the height of our screen with screenBounds.size.height 
    // Remember were talking about the center of our GADBannerView here so if we just set it to that 
    // Half of our GADBannerView's height will be cut off by the bottom of the screen 
    // So lets subtract half of our GADBannerView's height to fix that with adMobView.bounds.size.height/2 
    adMobView.center = CGPointMake(screenBounds.size.width/2, screenBounds.size.height - (adMobView.bounds.size.height/2)); 

    // Add it to our view 
    [self.view addSubview:adMobView]; 
+0

它不起作用。但它似乎是正確的。 –

+0

@TsuyoshiEndo我已經更新了我的答案,因此'GADBannerView'的寬度橫跨整個屏幕的寬度。 –

+0

它運作良好! 我瞭解_當我想要定位特定的點時,請不要使用精確的dimensions_和_use center_。 所以,當我在UINavigationController中使用一個UIViewControllers時,這個代碼是否工作正常? –