制作一个兼容iphone和ipad的应用程序

时间:2014-02-21 06:08:17

标签: ios iphone objective-c ipad

我正在使用这两个设备来制作我的应用程序。我的应用程序完全在iPad上运行但是当我选择设备作为iPhone 4inch时,接口出现错误。现在是图片。 你可以看到顶部和底部的黑色是从哪里来的?

enter image description here

这是我的代码:

app appate中的

if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) {
    if([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPad)
    {
        NSLog(@"Ipad ");
        [application setStatusBarStyle:UIStatusBarStyleLightContent];

        self.window.clipsToBounds =YES;

        self.window.frame =  CGRectMake(0,-20,self.window.frame.size.width,self.window.frame.size.height+20);
    }
    if
     (IS_IPHONE_5)
    {

        NSLog(@"Iphone %f ",[[UIScreen mainScreen] bounds].size.height);
        if ([[UIScreen mainScreen] bounds].size.height == 568) {

            [application setStatusBarStyle:UIStatusBarStyleLightContent];

            self.window.clipsToBounds =YES;

            self.window.frame =  CGRectMake(0,-20,self.window.frame.size.width,self.window.frame.size.height+20);
        }
    }

}

enter image description here

3 个答案:

答案 0 :(得分:2)

如果你想支持iPhone 5屏幕的应用程序。你应该添加图像,启用iPhone 5屏幕尺寸的应用程序。这应该从xcode 4.5 +

实现

将此图片添加到项目Xcode screenshot。 要使您的应用能够与iPhone 5配合使用,您需要添加启动器图像的视网膜版本。它应该命名为Default-568h@2x.png

设置中心内容的自动调整遮罩以在两个方向上展开。

view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;

否则,您可以通过以下代码更改视图大小,这将使您的屏幕与iPhone 5屏幕兼容。

CGRect screenBounds = [[UIScreen mainScreen] bounds];
if (screenBounds.size.height == 568) {
    // code for 4-inch screen
} else {
    // code for 3.5-inch screen
}

答案 1 :(得分:1)

如果你想兼容iPad和iPhone(标准版,3.5英寸,4英寸),试试这个

if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone){
    if ([UIScreen mainScreen].scale == 2.0f) {
        CGSize result = [[UIScreen mainScreen] bounds].size;
        CGFloat scale = [UIScreen mainScreen].scale;
        result = CGSizeMake(result.width * scale, result.height * scale);

        if(result.height == 960){
            NSLog(@"iPhone 4, 4s Retina Resolution");
        }
        if(result.height == 1136){
            NSLog(@"iPhone 5 Resolution");
        }
        else {
            NSLog(@"iPhone Standard Resolution");
        }
    }
    else {
    //iPad
        if ([UIScreen mainScreen].scale == 2.0f) {
            NSLog(@"iPad Retina Resolution");
        } 
        else{
            NSLog(@"iPad Standard Resolution");
        }
}

答案 2 :(得分:0)

为iphone 5 640 * 1136添加默认视网膜图像