标签栏和导航控制器内的MKMapView隐藏了Google品牌

时间:2010-09-10 14:27:13

标签: iphone objective-c uikit mkmapview uitabbar

我在提交到应用商店时收到以下消息:

  

此外,应用程序显示   Google地图提供的图片没有   相应的谷歌品牌,我们   无法将此版本发布到App   店

我有一个带有NavigationController的TabBar。导航控制器在

中加载地图
- (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 +导航控制器)在Interface Builder中创建。

3 个答案:

答案 0 :(得分:3)

这解决了问题

mapView.autoresizingMask = (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight);

答案 1 :(得分:0)

很好。 :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];
    // ...
}

答案 2 :(得分:0)

另一种方式是

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

这样你就不会提供绝对数值。