AdWhirl - Перемещение вида на центр экрана на вращении

StackOverflow https://stackoverflow.com/questions/7824337

  •  27-10-2019
  •  | 
  •  

Вопрос

Это, вероятно, что -то довольно простое. Я пытаюсь внедрить 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 и функция вращения (ы)).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top