2015-10-28 4 views
6

Мне нужно, чтобы мои рекламные баннеры были заполнены/заполнены по всей ширине экрана внизу.Изменить размер рекламного баннера iOS?

Мой код работает для устройств с шириной, равной либо MOPUB_BANNER_SIZE.width или MOPUB_LEADERBOARD_SIZE.width Но на других устройствах (iPhone 5/6/и т.д., и некоторые IPADS) мой единственный вариант в центр баннер. вот код:

if(!_mopubBanner){ 
    NSString* bannerID; 
    const CGSize* bannerSize; 
    if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone){ 
     bannerID = @"MopubBannerId"; 
     bannerSize = &MOPUB_BANNER_SIZE; 
    } 
    else{ 
     bannerID = @"MopubLeaderboardId"; 
     bannerSize = &MOPUB_LEADERBOARD_SIZE; 
    } 

    _mopubBanner = [[MPAdView alloc] initWithAdUnitId:bannerID size:*bannerSize]; 
    _mopubBanner.delegate = self; 

    CGRect BannerFrameRect; 
    if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) 
    { 
     BannerFrameRect = CGRectMake(([[UIScreen mainScreen] bounds].size.width - MOPUB_BANNER_SIZE.width)/2, 
            [[UIScreen mainScreen] bounds].size.height - MOPUB_BANNER_SIZE.height, 
            MOPUB_BANNER_SIZE.width, 
            MOPUB_BANNER_SIZE.height); 
    } 
    else 
    { 
     BannerFrameRect = CGRectMake(([[UIScreen mainScreen] bounds].size.width - MOPUB_LEADERBOARD_SIZE.width)/2, 
            [[UIScreen mainScreen] bounds].size.height - MOPUB_LEADERBOARD_SIZE.height, 
            MOPUB_LEADERBOARD_SIZE.width, 
            MOPUB_LEADERBOARD_SIZE.height); 
    } 

    _mopubBanner.frame = BannerFrameRect; 
} 

Я попытался установить пользовательские размеры для BannerFrameRect но рекламный баннер просто держит приспосабливаться к верхнему левому углу нового кадра. Он не масштабируется.

Есть ли способ изменить размер объявления?

спасибо

ответ

0

, пожалуйста, посмотри на образце коде MoPub здесь:

https://github.com/mopub/mopub-ios-sdk/blob/master/MoPubSampleApp/Controllers/MPLeaderboardBannerAdDetailViewController.m

Вы можете использовать автоматическое изменение в UIView, и в вашем случае вы можете просто добавить следующую строку в вашем код:

_mopubBanner.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleBottomMargin; 

надеюсь, что это поможет!

0

У вас есть два жизнеспособных решений:

  1. Использование масок

    автоматического изменения
    _mopubBanner.translatesAutoresizingMaskIntoConstraints = YES; 
    _mopubBanner.autoresizingMask = UIViewAutoresizingFlexibleWidth; 
    

Вы, вероятно, нужно установить height вручную, так как вы только хотите 'горизонтальный' растяжку.

  1. Гораздо лучше ИМО - используйте автовыходы. Для этого я бы рекомендовал PureLayout, так как это действительно понятно и полезно.

    _mopubBanner.translatesAutoresizingMaskIntoConstraints = NO; 
    [_mopubBanner autoPinEdgesToSuperviewEdgesWithInsets:UIEdgeInsetsZero excludingEdge:ALEdgeTop]; 
    
+0

спасибо за исчерпывающий ответ. К сожалению, я сейчас нахожусь в отпуске, поэтому я не могу это проверить. Я не буду принимать ответ, пока не смогу его проверить. Но я дам вам щедрость, как небольшое поощрение, чтобы быть более активным в SO. :)) благодаря. –

+0

Спасибо, напишите назад после тестирования, я также могу помочь вам с автолайнами. – Krodak

+0

проверил это - mopub по-прежнему отказывается получить размер. Ну, черт с ним, пока это не сбой :)) –

Смежные вопросы