Можем ли мы поместить статичное изображение баннера вверху каждого экрана? - PullRequest
1 голос
/ 21 сентября 2011

Наш клиент решил, что в его приложении недостаточно брендинга, и он хочет поместить свой логотип в баннер в верхней части каждого экрана. Баннер логотипа имеет ту же высоту, что и заголовок панели навигации, и может быть просто статичным изображением.

Наше приложение имеет много разных экранов, в том числе многие из них управляются UINavigationController. Мы не можем поместить логотип в часть заголовка контроллера nav, потому что тогда мы не сможем отобразить заголовок для этого представления.

Глядя на приложения для iOS, видно, что это не часто встречается. Кто-нибудь должен был делать это раньше, и как ты это сделал?

Спасибо за любые советы!

Ответы [ 4 ]

1 голос
/ 21 сентября 2011

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

В любом случае, если вы должны сделать это, вы можете добавить какой-либо вид баннера прямо в окно делегата приложения.После этого вы должны обязательно установить рамку корневого контроллера представления окна ниже видимой части рекламного баннера.Отсюда, остальные виды будут содержаться в указанном вами кадре, который обычно является размером экрана.

0 голосов
/ 22 сентября 2011

Вы можете сохранить логотип баннера в файле AppDelegate и установить рамку для BannerLogo. Это было бы то же самое, что показ объявлений с iAds или AdMobs. Я сделал это, чтобы отобразить AdMob на всех экранах. Вам необходимо добавить BannerLogo в качестве подвида для отображения на всех видах.

0 голосов
/ 21 сентября 2011

Вы можете сделать это - посмотрите в приложении XFactor UK для примера (http://itunes.apple.com/gb/app/the-x-factor-uk/id455682741?mt=8) - навигационная панель имеет фирменное оформление во всем приложении.

Плохие новости - это довольно сложно сделать- в итоге мы применили категорию к UINavigationBar, чтобы переопределить drawRect и поместили туда фон, например:

@implementation UINavigationBar (extras)

- (void)drawRect:(CGRect)rect {

    UIImage *image;

    if (self.frame.size.width>320) {
        image = [UIImage imageNamed: @"NavigationBarWide.png"];
    } else {
        image = [UIImage imageNamed: @"NavigationBar.png"];
    }

    [image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
}
0 голосов
/ 21 сентября 2011

Вы можете добавить логотип к MainWindow вашего приложения и установить прозрачность для всех фонов viewControllers.Но обратите внимание, что это означает, что все ваши viewControllers будут использовать один и тот же фон (тот, что из MainWindow).

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