我正在尝试为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英寸屏幕相同,带有一些白色边框以覆盖剩余区域。
需要一些指导来解决它。谢谢..可以指出我正在做的错误......
答案 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]