Я разобрался, как это сделать для обычного UITableViewController
без использования кастомного UIViewController
с UITableView
внутри.Хитрость заключается в том, чтобы динамически регулировать положение вида баннера, чтобы он всегда находился внизу видимой области.
Вы только что добавили свой вид баннера в качестве подпредставления и соответственно изменили вставки таблицы:
- (void)viewDidLoad
{
[super viewDidLoad];
...
//init banner and set it's frame (here we use 320x50 banner)
self.bannerView = [[UIView alloc] init];
self.bannerView.frame = CGRectMake(0, self.view.frame.size.height - 50, 320, 50);
//add as subview
[self.view addSubview:self.bannerView];
//set proper bottom inset depending on your banner height
self.tableView.contentInset = UIEdgeInsetsMake(0, 0, 50, 0);
}
Когда таблица прокручивается, вам нужно настроить положение баннера в зависимости от смещения содержимого:
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
//refresh banner frame during the scrolling
CGRect bannerFrame = self.bannerView.frame;
bannerFrame.origin.y = self.view.frame.size.height - 50 + self.tableView.contentOffset.y;
self.bannerView.frame = bannerFrame;
}
Мой пример для баннера с нижним расположением, но легко изменить расчеты, чтобы применить его к баннеру, расположенному в верхней части таблицы.