Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/113.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为iphone 4s和iphone 5加载两个不同的屏幕_Iphone_Ios_Storyboard_Iphone 5 - Fatal编程技术网

为iphone 4s和iphone 5加载两个不同的屏幕

为iphone 4s和iphone 5加载两个不同的屏幕,iphone,ios,storyboard,iphone-5,Iphone,Ios,Storyboard,Iphone 5,我正在开发一个适用于iphone 4s和iphone 5的应用程序,这里的主题是为iphone 4s和iphone 5设计屏幕。在我的previos应用程序中,我使用-(void)initializeStoryBoardBasedOnScreenSizeiOSDeviceScreenSize.height为这两款设备使用了两个不同的故事板。但在我的新应用程序中,我想通过xibs实现这一点,而不是使用故事板,因此我想知道如何开发一个与所有设备兼容的应用程序,请在这个问题上花费宝贵的时间来更新我的知

我正在开发一个适用于iphone 4s和iphone 5的应用程序,这里的主题是为iphone 4s和iphone 5设计屏幕。在我的previos应用程序中,我使用
-(void)initializeStoryBoardBasedOnScreenSize
iOSDeviceScreenSize.height为这两款设备使用了两个不同的故事板。但在我的新应用程序中,我想通过xibs实现这一点,而不是使用故事板,因此我想知道如何开发一个与所有设备兼容的应用程序,请在这个问题上花费宝贵的时间来更新我的知识,非常感谢您提前

1) 使用autolayout可兼容iphone 4s和iphone 5

2) 根据设备获取屏幕大小和设置帧

    #define IS_HEIGHT_GTE_568 [[UIScreen mainScreen ] bounds].size.height >= 568.0f

if( IS_HEIGHT_GTE_568)
{
// code for iPhone 5
}else
{
// code for iPhone 4s
}
#define IS_HEIGHT_GTE_568 [[UIScreen mainScreen ] bounds].size.height >= 568.0f

if( IS_HEIGHT_GTE_568) 
{ // Nib for iPhone5

}else 
{ 
// Nib for iPhone 4s 
}
3) 根据设备获取屏幕大小并加载Nib

    #define IS_HEIGHT_GTE_568 [[UIScreen mainScreen ] bounds].size.height >= 568.0f

if( IS_HEIGHT_GTE_568)
{
// code for iPhone 5
}else
{
// code for iPhone 4s
}
#define IS_HEIGHT_GTE_568 [[UIScreen mainScreen ] bounds].size.height >= 568.0f

if( IS_HEIGHT_GTE_568) 
{ // Nib for iPhone5

}else 
{ 
// Nib for iPhone 4s 
}

有两种方法可以使用 1-根据屏幕尺寸创建两个xib并加载所需

2-使用自动布局功能

您可以按照这些教程进行操作


除了使用
UIScreen
在代码中的差异之外,您还可以从此添加文件,并加载
retina4
图像的NIB和其他捆绑包,只需使用
@2x~568h
名称,而无需编辑您的代码:)

你好,谢谢您的回答,我需要在哪里编写此代码?我是否需要在每次执行操作时都编写此代码,以获得另一个屏幕?我希望您理解我的问题?#定义IS_HEIGHT_GTE_568[[UIScreen Main screen]bounds].size.height>=568.0f将此代码放入.Pch文件,需要时检查设备是否为iPhone 4或iPhone 5,如果为iPhone 4和iPhone 5加载不同的xib,则使用HomePageVC=[[HomePageViewController alloc]initWithNibName:is_height_gte568?@“HomePageViewController_iPhone5”:“HomePageViewController_iPhone4”bundle:[NSBundle mainBundle]];再次感谢您,我们不能使用autolayout吗?使用autolayout有任何缺点吗?如果您仅在ios6中开发应用程序,则使用autolayout bCoz autolayout在ios6中可用,否则您将使用代码调整大小和setframe或loadxib