iAd框架在iPhone上返回错误的高度

时间:2014-03-02 19:15:43

标签: ios iphone objective-c frame iad

我有一个iAd,我试图定位在屏幕的底部,但是当我试图获得广告的高度以便我可以将它放在底部。此错误仅在我以横向方向进入屏幕时发生,因为广告在纵向方向较高,且仅在iPhone模拟器上与在ipad上广告的高度相同。

我用来将添加放在底部的方法是将广告框架的y值设置为视图的高度减去广告的高度。

以下是我目前使用的代码:

- (void)viewWillAppear:(BOOL)animated
{
    CGRect adFrame = banner.frame;
    adFrame.origin.y = screenHeight - banner.frame.size.height;
    adFrame.size.width = screenWidth;
    banner.frame = adFrame;
    [banner setAutoresizingMask:UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleWidth];
}

- (void)viewDidLoad 
{
    [super viewDidLoad];
    banner.frame = CGRectZero;
}

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

我会看看Apple's sample code  用于完全按照您描述的方式集成iAD,特别是在ContainerBanner / ContainerBanner / BannerViewController.m中。您正在寻找的是ADBannerView的- (CGSize)sizeThatFits:(CGSize)size

CGRect adRect = CGRectZero;
CGRect contentFrame = self.view.bounds;
adRect.size = [banner sizeThatFits:contentFrame.size];
adRect.origin.y = CGRectGetHeight(contentFrame) - CGRectGetHeight(adRect);
banner.frame = adRect;