iphone 5视网膜4英寸mapview

时间:2013-05-03 10:37:27

标签: objective-c xcode mkmapview

我正在尝试将我的应用程序改编为适用于iPhone 5的视网膜4屏幕,并添加png存档,并且所有内容都会调整大小但地图视图会移动到顶部并在底部留下白色方块。我想知道如何解决它。

提前致谢。

enter image description here

也许这与它有关?

- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
    // We need to manually handle rotation on iPads running iOS 5 and higher to support the new UINavigationBar customization. This is automatic on the iPhone & iPod Touch.
    if ([self.navigationController.navigationBar respondsToSelector:@selector(setBackgroundImage:forBarMetrics:)] ) {
        if (toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft ||
            toInterfaceOrientation == UIInterfaceOrientationLandscapeRight) {
            [self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"UINavBarLandscape@iPad.png"] forBarMetrics:UIBarMetricsDefault];
        }
        else {
            [self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"UINavBar@iPad.png"] forBarMetrics:UIBarMetricsDefault];
        }
    }
}
else {
    if (toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft ||
        toInterfaceOrientation == UIInterfaceOrientationLandscapeRight) {
        [mapView setFrame:CGRectMake(0, 0, 480, 236)];
        [toolbar setFrame:CGRectMake(0, 236, 480, 32)];
    }
    else {
        [mapView setFrame:CGRectMake(0, 0, 320, 372)];
        [toolbar setFrame:CGRectMake(0, 372, 320, 44)];
    }

2 个答案:

答案 0 :(得分:1)

顶部栏应固定在顶部。底部栏固定在控制器视图的底部。地图视图应锚定在顶部和底部,但也应该有一个垂直弹簧。

现在,当你有iphone 4或5时,一切都应该正确扩展。

此外,如果您的目标是iOS 6,请花点时间使用AutoLayout。这样,当iPhoneN具有不同的分辨率时,您不必担心布局太多。

答案 1 :(得分:0)

您必须以编程方式检查代码中的iPhone设备版本并相应地调整控件大小。