MKMapView внутри панели вкладок и Navigtion Controller скрывает брендинг Google - PullRequest
2 голосов
/ 10 сентября 2010

Я только что получил следующее сообщение при отправке в магазин приложений:

Кроме того, приложение отображает изображения предоставлены Google Maps без соответствующий брендинг Google, мы не может опубликовать эту версию в приложении Магазин

У меня есть TabBar с NavigationController внутри. Навигационный контроллер загружает карту в

- (void)viewDidLoad {
    [super viewDidLoad];
    mapView = [[MKMapView alloc] initWithFrame:self.view.bounds];
    // ...
}

Это работает, но mapView заканчивается ниже панели вкладок, поэтому логотип Google не отображается. Чтобы правильно получить кадр, я должен создать его вручную

- (void)viewDidLoad {
    [super viewDidLoad];
    mapView = [[MKMapView alloc] initWithFrame:CGRectMake(0,0,320,370)];
    // ...
}

Это работает, но не чувствует себя хорошо. Как правильно это сделать?

Основной интерфейс (TabBar + Navigation Controllers) создается в Интерфейсном Разработчике.

Ответы [ 3 ]

3 голосов
/ 11 октября 2010

Это исправляет проблему

mapView.autoresizingMask = (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight);
0 голосов
/ 07 августа 2011

Другой способ был бы

CGRect viewBounds = self.view.bounds;
viewBounds.size.height -= self.tabBarController.tabBar.frame.size.height + self.navigationController.navigationBar.frame.size.height;

Таким образом, вы не предоставляете абсолютные числовые значения.

0 голосов
/ 10 сентября 2010

Это хорошо. : p Точно так же вы можете сделать:

- (void)viewDidLoad {
    [super viewDidLoad];
    CGRect bounds = self.view.bounds;
    bounds.size.height -= 90; // i think the tab bar controller is 90
    mapView = [[MKMapView alloc] initWithFrame:bounds];
    // ...
}
...