0

我正在尝试为 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。因此,对于 3.5 英寸的屏幕,它应该显示通常,对于 4 英寸的屏幕,它应该相应地调整大小。

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

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

4

3 回答 3

1

为什么您再次分配backgroundimageViewiPhone 5 分辨率。只需使用相同的 IBOutletbackgroundimageView并修改它的框架和图像。

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"]];
    }
于 2013-02-20T04:46:25.647 回答
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)
于 2013-02-20T04:56:22.097 回答
0

我认为你的 imageview 的内容模式是中心,所以试试这个为你的 imageview

[_backgroundimageView setContentMode:UIViewContentModeScaleAspectFill]
于 2013-02-20T04:57:37.187 回答