0

Currently I use this to code for loading the iAD banners.

- (void)viewDidLoad
{
    [super viewDidLoad];

    adView = [[ADBannerView alloc] initWithFrame:CGRectZero];
    CGRect adFrame = adView.frame;
    adFrame.origin.y = self.view.frame.size.height;
    adView.frame = adFrame;

    [adView setAutoresizingMask:UIViewAutoresizingFlexibleWidth];

    [self.view addSubview:adView];
    adView.delegate=self;

    self.bannerIsVisible=NO;

}

- (void)bannerViewDidLoadAd:(ADBannerView *)banner
{
    if (!self.bannerIsVisible)
    {
        [UIView beginAnimations:@"animateAdBannerOn" context:NULL];

        CGRect adFrame = adView.frame;
        adFrame.origin.y = self.view.frame.size.height-adView.frame.size.height;
        adView.frame = adFrame;

        [UIView commitAnimations];
        self.bannerIsVisible = YES;
    }
}

- (void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error
{
    if (self.bannerIsVisible)
    {
        [UIView beginAnimations:@"animateAdBannerOff" context:NULL];

        CGRect adFrame = adView.frame;
        adFrame.origin.y = self.view.frame.size.height+adView.frame.size.height;
        adView.frame = adFrame;

        [UIView commitAnimations];
        self.bannerIsVisible = NO;
    }
}

The problem is that I want to auto set the iAD view to the bottom of the view also when the device orientation changes. I tried lots of things but none of thim are working.

Also why do I have to use notification center to check device orientations? DidRotateToInterfaceOrientation doesn't seem to work.

4

4 に答える 4

3

私はこれを間違って理解しているかもしれませんが、次のように設定すると:

[adView setAutoresizingMask:UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleTopMargin];

これは、ビューが (回転すると) 拡大/縮小するにつれて、「上部」マージンを増減する必要があるため、下部に固執する必要があることを意味する必要があります。

上記のアイデアがうまくいかない場合、現在何が起こっているかのスクリーンショットを提供できますか?

于 2013-02-15T16:38:09.030 に答える
0

あなたの方法でこれを試してくださいviewDidLoad

CGRect adFrame = adView.frame;
adFrame.origin.y = self.view.frame.size.height-adView.frame.size.height;
adView.frame = adFrame;

デバイスの種類に関係なく、iAd をビューの下部に設定します。デリゲート メソッドで iAd のフレームを設定しないでください。

于 2013-02-12T09:09:56.907 に答える