Два контроллера представления внутри одного контроллера представления, управляющего свойством кадра - PullRequest
0 голосов
/ 10 октября 2011

Я хотел бы, чтобы баннер iAd загружался внутри приложения в нижней части окна, а остальная часть приложения, UINavigationController и представление, находились в верхней части окна. Я экспериментировал и пытался использовать свои математические и логические навыки, но не могу заставить их выглядеть правильно.

Баннер iAd отображается в правильном месте, а NavigationController - нет.

//AppDelegate.h
AdViewController *adController;
UINavigationController *navController;
UIViewController *containerView;

//.m file didFinishLaunching...
//views and controllers already initialized
containerView.view.frame = [[UIScreen mainScreen]bounds];
[containerView.view addSubview self.adController.view];
[containerView.view addSubview self.navController.view];

//hard coded frame for an ADBannerView (loaded in .xib)
CGRect bannerFrame = self.adController.view.frame;

//sets the start point vertically by subtracting the 
//banner height from the total height of the screen
//in this case, 480 - 50
bannerFrame.origin.y = [[UIScreen mainScreen]bounds].size.height - bannerFrame.size.height;

self.adController.view.frame = bannerFrame;

//returns a rectangle that takes the 20 px status bar into account
//this rectangle's y origin is at 20
CGRect appFrame = [[UIScreen mainScreen]applicationFrame];

//This CGRect is assuming the applicationFrame
CGRect navFrame = appFrame;

//subtract the banner height from the navFrame height
//takes 50 px off of the height
navFrame.size.height = navFrame.size.height - bannerFrame.size.height;

self.navController.view.frame = navFrame;

iOS Simulator

1 Ответ

0 голосов
/ 10 октября 2011

Для баннеров iAd нужен viewcontroller. Кроме того, Apple заявляет, что viewcontroller должен управлять целым количеством экранов, пока мы не сможем написать наши собственные представления контейнера в ios5.

Я предлагаю вам ознакомиться с демонстрационным кодом iAd от Apple, в частности AdBannerNavigation.app.

Другим вариантом может быть использование платформы mobClix, с помощью которой вы можете добавить баннер iAd в контроллер навигации.

Я предполагаю, что вы планируете, когда нет объявлений для показа? так как иногда уровень заполнения может быть низким.

p.s. Вы пытались добавить и определить размер контроллера навигации перед добавлением баннера?

...