为iphone 4s和iphone 5加载两个不同的屏幕
我正在开发一个适用于iphone 4s和iphone 5的应用程序,这里的主题是为iphone 4s和iphone 5设计屏幕。在我的previos应用程序中,我使用为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实现这一点,而不是使用故事板,因此我想知道如何开发一个与所有设备兼容的应用程序,请在这个问题上花费宝贵的时间来更新我的知
-(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