AdWhirl - Перемещение вида на центр экрана на вращении
Вопрос
Это, вероятно, что -то довольно простое. Я пытаюсь внедрить Adwhirl в свое приложение, которое я успешно сделал для технической части. Когда я загружаю свое приложение, добавить загрузки, а затем скользит сверху, чтобы сесть внизу экрана. Однако, когда я поворачиваю устройство, реклама использует «точные» местоположения и перемещается с экрана. Когда реклама перезагружается (обновляется каждые 15 секунд), реклама перемещается в нижнюю часть экрана окна ландшафта. Опять же, при возвращении обратно от ландшафта реклама выравнивает себя в середине страницы вертикально (охватывающая контент), пока новая реклама не загрузится. Я приложил несколько фотографий, в серии, показывающей, что происходит, все в порядке, и с интервалом было по крайней мере 10 секунд (показывая тестовую рекламу «Привет»).
Мой код из файла реализации включен в конце этого поста - извините за то, что не использовал формат кода, просто не хотел помещать места перед всем блоком, и я думаю, что все это относительно актуально. Он также доступен в мусорном корзине: http://pastebin.com/mzavbj2l
Сэм
Извините - это не позволило бы мне загружать изображения. Пожалуйста, пришлите мне личку для изображений.
Решение 2
Спасибо за вашу помощь - это было близко к решению (только что только что работало сегодня вечером - в основном забыл о том, чтобы сделать это!). После того, как я внес вам изменения в свой .h, я пытался позвонить [adWhirlView adWhirlDidReceiveAd:(AdWhirlView *)adView]
. Анкет Это продолжало возвращать ошибки, хотя он был определен в классе Adwhirlview. Как исправление, я добавил -(void) adWhirlDidReceiveAd:(AdWhirlView *)adView
а затем вызывал каждый раз, когда рама вращалась [self adWhirlDidReceiveAd:(AdWhirlView *)adView];
.
Еще раз спасибо - так рада, что он наконец -то работает.
Сэм
Другие советы
Я рекомендую обрабатывать вращение в willRotateToInterfaceOrientation:duration:
Метод или didRotateFromInterfaceOrientation:method
. Анкет Вы сможете определить, какова ваша новая ориентация, новый размер вашего представления, а затем изменить кадр вашего представления AdWhirl на новое место.
Однако, посмотрев немного ближе, похоже, вам может придется сделать *adView
переменная, объявленная в вашем .h
Файл, чтобы вы могли получить к нему доступ к методам вращения.
Как только вы это сделаете, вы можете установить свой новый кадр, как и в viewDidLoad: method:
CGSize adSize = [adView actualAdSize];
CGRect newFrame = adView.frame;
newFrame.size = adSize;
newFrame.origin.x = (self.view.bounds.size.width - adSize.width)/ 2;
newFrame.origin.y = (self.view.bounds.size.height - adSize.height);
adView.frame = newFrame;
[UIView commitAnimations];
В идеале, вы бы переместили этот код в свой собственный метод, чтобы вы могли просто вызвать его откуда, где вы хотите в коде контроллера представления (например, viewDidLoad
и функция вращения (ы)).