Установка плавающего баннера

Если в приложении применяются табличные представления данных, то вы можете использовать специально разработанный контейнер, который будет демонстрироваться в футере таблицы. При этом вы можете настроить отображение кнопки закрытия баннера по желанию.

Создание плавающего баннера с кнопкой закрытия

Для создания такого баннера используйте класс MADTosterRotationView.h. Создайте ваш UITableViewController, например так:

#import <UIKit/UIKit.h>
#import "IMADRotationViewDelegate.h"
#import "IMADTosterRotationViewDelegate.h"
#import "MADTosterRotationView.h"

@interface BannerSampleTableViewController: UITableViewController <IMADRotationViewDelegate, IMADTosterRotationViewDelegate>
{
  @private
    MADTosterRotationView *m_tosterAdView;
}
@end

В методе viewDidLoad инициализируйте переменную m_tosterAdView следующим образом:

m_tosterAdView = [[MADTosterRotationView alloc] 
                              initWithAdSize: kmAdSize_320x50
                                     spaceId: @”SPACE_ID”];
m_tosterAdView.delegate = self;

Как и для других баннеров, необходимо обязательно реализовать метод MADViewController:

- (UIViewController *) MADViewController
{
    return (self);
}

Для того, чтобы скрыть крестик в правом верхем углу контейнера и отключить возможность удаления баннера пользователем, нужно использовать следующий код при создании контейнера.

m_tosterAdView.useTosterCloseButton = NO;

Также вы можете реализовать дополнительные методы делегата, специфичные для протокола IMADTosterRotationViewDelegate:

- (BOOL) tosterAdViewWillClose: (MADTosterRotationView *) aTosterAdView
{
    NSLog(@"BannerSampleTableViewController::tosterAdViewWillClose");
    return (YES);
}

- (void) tosterAdViewDidClose: (MADTosterRotationView *) aTosterAdView
{
    NSLog(@"BannerSampleTableViewController::tosterAdViewDidClose");
    [m_tosterAdView performSelector: @selector(play) 
                         withObject: nil 
                         afterDelay: 5.0f];
}

И наконец самое главное: для того, чтобы баннер отображался в футере табличного представления, необходимо реализовать следующий метод:

- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section
{
    [m_tosterAdView load];
    return ([MADTosterRotationView footerViewForTableView:  tableView
                                         withRotationView: m_tosterAdView]);
}

Чтобы табличное представление правильно определило высоту футера, необходимо реализовать соответствующий метод:

- (CGFloat)tableView: (UITableView *)tableView heightForFooterInSection: (NSInteger)section
{
    return ([MADTosterRotationView 
                  footerViewHeightWithRotationView: m_tosterAdView]);
}

Не забывайте следующим образом реализовывать метод dealloc вашего контроллера:

- (void) dealloc
{
    [m_tosterAdView invalidate];
    [m_tosterAdView release]; m_tosterAdView = nil;
    [super dealloc];
}

Скрытие плавающего баннера в процессе прокрутки

Вы можете использовать интересную возможность по скрытию баннера во время процесса просмотра таблички - это привлечет большее внимание пользователя к рекламируемому содержимому. Для этого реализуйте следующие методы:

- (void) scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
    [m_tosterAdView pause];
}
- (void) scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
{
    if (!decelerate)
    {
        [m_tosterAdView play];
    }
}
- (void) scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
    [m_tosterAdView play];
}
Была ли эта статья полезной?
Пользователи, считающие этот материал полезным: 0 из 0
Еще есть вопросы? Отправить запрос

Комментарии

На базе технологии Zendesk