Iphone 在3.5“屏幕上正确显示应用程序”;和4“;屏幕

Iphone 在3.5“屏幕上正确显示应用程序”;和4“;屏幕,iphone,screen-size,Iphone,Screen Size,我几乎完成了我的应用程序的开发。现在,我正在努力使它在iPhone4和iPhone5中看起来都很漂亮 我正在尝试获取我的scren的高度,但以下方法不起作用。 有什么想法吗 CGRect screenBound = [[UIScreen mainScreen] bounds]; CGSize screenSize = screenBound.size; if (screenSize.height == 1136) { NSLog(@"iphone 5"); }else if(scree

我几乎完成了我的应用程序的开发。现在,我正在努力使它在iPhone4和iPhone5中看起来都很漂亮

我正在尝试获取我的scren的高度,但以下方法不起作用。 有什么想法吗

CGRect screenBound = [[UIScreen mainScreen] bounds];
CGSize screenSize = screenBound.size;

if (screenSize.height == 1136) {
    NSLog(@"iphone 5");
}else if(screenSize.height  == 960){
    NSLog(@"iphone 4 retina");
}else{
    NSLog(@"iphone 4 non retina");
}

这是完整的VIEWWILLEXPEND方法:

-(无效)视图将显示:(BOOL)动画 { [[UIDevice currentDevice]endGeneratingDeviceOrientationNotifications]

CGRect screenBound = [[UIScreen mainScreen] bounds];
CGSize screenSize = screenBound.size;
NSLog(@"%@",NSStringFromCGSize(screenSize));

if (screenSize.height == 568.0f) {
    NSLog(@"iphone 5");
}else if(screenSize.height  == 480.0f){
    NSLog(@"iphone 4 retina");
}else{
    NSLog(@"iphone 4 non retina");
}


[firstStepsButton.titleLabel setHidden:YES];
[workingButton.titleLabel setHidden:YES];
[accommodationButton.titleLabel setHidden:YES];
[universityButton.titleLabel setHidden:YES];
[meetMeButton.titleLabel setHidden:YES];
[improveYourselfButton.titleLabel setHidden:YES];

self.navigationController.navigationBarHidden = TRUE;
//self.view.backgroundColor=[UIColor COLOR WITH RED:2/255.0f绿色:42/255.0f蓝色:97/255.0f alpha:1.0f]

[super viewWillAppear:animated];

}因为屏幕的坐标系是点,而不是像素。试着这样做:

CGRect screenBound = [[UIScreen mainScreen] bounds];
CGSize screenSize = screenBound.size;
NSLog(@"%@",NSStringFromCGSize(screenSize));

if (screenSize.height == 568.0f) {
    NSLog(@"iphone 5");
}else if(screenSize.height  == 480.0f){
    NSLog(@"iphone 4 retina");
}else{
    NSLog(@"iphone 4 non retina");
}

您还应该考虑使用UIGoice的代码> UsSeriFieldIOM < /代码>来检查设备是否是iPi/iPad,以及UIScreen的<代码>比例>代码>以确定设备是否是视网膜。

< P>考虑下载XCODE 5 DP,在那里他们在界面生成器中固定了AutoLayOutle的管理。现在设置和管理约束非常容易。试试看。

您可以在interface builder中使用autoresizemask。他们这样做要简单得多。:)试图更改,但仍无法在控制台中打印任何内容。我将所有内容都插入了vieWillAppearI,不需要检查它是否是iPhone/iPad,因为我的应用程序将只针对iPhone发布!调用viewWillAppear是因为我正在更改一些按钮的标题,并且它可以工作。我添加了完整的方法,其中编写的内容正在被调用。只是你给我的代码不是。我的错误是,我刚刚意识到没有调用viewwillbeen。我现在尝试将其移动到viewWillLoad,但仍然没有任何结果。