2013-02-19 4 views
0

AdWhirl을 사용하여 앱에 iAd 및 AdMob 광고를 모두 표시합니다. iPad에서 가로 방향으로 1024 너비의 AdWhirlView를 만들었지 만 반환 된 첫 번째 iAd는 항상 세로 너비 광고 (768)입니다. iPad를 세로로 회전 한 다음 다시 가로로 돌리면 광고가 가로로 1024 와이드로 올바르게 표시됩니다.AdWhirl의 첫 번째 iAd 요청은 항상 iPad에서 세로 형 광고를 반환합니다.

왜 회전 광고없이 가로 광고가 시작되는 것으로 보입니까? 다음

- (void) setupAdWhirl { 
    if (self.adWhirlView == nil) { 
     CGFloat adWhirlHeight = 90.0; 

     CGSize size = self.rootViewController.view.bounds.size; 
     NSLog(@"rootVC.bounds=%@", NSStringFromCGRect(self.rootViewController.view.bounds)); 

     AdWhirlView *adWhirl = [AdWhirlView requestAdWhirlViewWithDelegate:self]; 
     adWhirl.frame = CGRectMake(0, size.height - adWhirlHeight, size.width, adWhirlHeight); 
     adWhirl.autoresizingMask = UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleTopMargin; 
     NSLog(@"adWhirl.frame=%@", NSStringFromCGRect(adWhirl.frame)); 

     [self.rootViewController.view addSubview:adWhirl]; 
     self.adWhirlView = adWhirl; 
    } 
} 

그 두 로그 문 출력 :

rootVC.bounds={{0, 0}, {1024, 748}} 
adWhirl.frame={{0, 658}, {1024, 90}} 

그래서 나는 adWhirlView에 처음에 설정하고있어 프레임이 넓은 1024 90 키입니다. 그러나 첫 번째 iAd가로드되면 768 와이드로 크기가 조정됩니다.

답변

0

"적절한"방법이 있는지 모르겠지만 AdWhirl 소스를 해킹하여 예상대로 작동하도록했습니다.

iAdView = [[ADBannerView alloc] initWithAdType:ADAdTypeBanner]; 
    iAdView.autoresizingMask = UIViewAutoresizingFlexibleWidth; 

    // Added lines below 

    if (self.adWhirlView.bounds.size.width > self.adWhirlView.bounds.size.height) { 
     iAdView.currentContentSizeIdentifier = kADBannerContentSizeIdentifierLandscape; 
    } 
    else { 
     iAdView.currentContentSizeIdentifier = kADBannerContentSizeIdentifierPortrait; 
    } 
다음 말게 어댑터

는 -getAd 방법은 ADBannerView의 생성 후, 다음 코드를 추가