将我的应用迁移到iphone5分辨率的问题

时间:2013-02-20 04:42:04

标签: iphone ios

我正在尝试为iphone 5迁移我的应用程序。我已经在stackoverflow中看到了其他问题,并且仍然面临正确显示它的一些问题。

CGRect screenBounds = [[UIScreen mainScreen] bounds];
    if (screenBounds.size.height == 568) {
        // code for 4-inch screen
        _backgroundimageView = [[UIImageView alloc] initWithFrame:CGRectMake(0,0,320,500)];
        [_backgroundimageView setImage:[UIImage imageNamed:@"image1-568h@2x.png"]];
    } else {
        // code for 3.5-inch screen
        [_backgroundimageView setImage:[UIImage imageNamed:@"image1.png"]];
    }

我为backgroundimageView设置的尺寸在尺寸检测器中为320 x370,图像尺寸为image1-568h@2x.png,尺寸为640x 1136,image1.png为640x733.So,对于3.5英寸屏幕,它应该正常显示,对于4英寸的屏幕,它应该相应地调整大小。

但问题是,对于4英寸的屏幕,它不会调整大小并最终显示我与3英寸屏幕相同,带有一些白色边框以覆盖剩余区域。

需要一些指导来解决它。谢谢..可以指出我正在做的错误......

3 个答案:

答案 0 :(得分:1)

为什么要再次为iPhone 5分辨率分配backgroundimageView。只需使用backgroundimageView的相同IBOutlet并修改它的框架和图像。

CGRect screenBounds = [[UIScreen mainScreen] bounds];
    if (screenBounds.size.height == 568) {
        // code for 4-inch screen
        _backgroundimageView.frame = CGRectMake(0,0,320,460);
        [_backgroundimageView setImage:[UIImage imageNamed:@"image1-568h@2x.png"]];
    } else {
        // code for 3.5-inch screen
         _backgroundimageView.frame =CGRectMake(0,0,320,370);
        [_backgroundimageView setImage:[UIImage imageNamed:@"image1.png"]];
    }

答案 1 :(得分:0)

默认图片名称必须为“Default-568h@2x.png”(不是image1-568h@2x.png)尝试重命名默认图片名称并再次检查,您将获得正确的屏幕尺寸。

您也可以通过宏检查iphone5。

#define IS_IPHONE (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
#define IS_IPHONE_5 (IS_IPHONE && [[UIScreen mainScreen] bounds].size.height == 568.0f)

答案 2 :(得分:0)

我认为您的图片视图的内容模式是中心,因此请尝试使用此图片

[_backgroundimageView setContentMode:UIViewContentModeScaleAspectFill]