1

アプリの開発はほぼ完了しました。現在、iPhone 4 と 5 の両方で見栄えを良くしようとしています。

画面の高さを取得しようとしていますが、次の方法は機能しません。何か案が?

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");
}

これは完全な viewWillAppear メソッドです:

-(void)viewWillAppear:(BOOL)animated { [[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 colorWithRed:2/255.0f 緑:42/255.0f 青:97/255.0f アルファ:1.0f];

[super viewWillAppear:animated];

}

4

2 に答える 2

0

画面の座標系がピクセルではなくポイントであるため、そうではありません。次のようにしてみてください。

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");
}

userInterfaceIdiomまた、UIDevice を使用してデバイスが iPhone/iPad であるかどうかを確認し、UIScreenを使用してデバイスが Retina かどうかを判断することも検討する必要がありscaleます。

于 2013-08-26T12:26:21.557 に答える