我现在正在制作一个 iphone 应用程序。但将来这个应用程序也应该可用于 iPad。目前我正在使用情节提要,因为以这种方式使其也可用于 iPad 非常容易。
我现在的问题是,一些视图,比如长的个人资料表单,你把它放在一个滚动视图中。但是您不能在情节提要中构建滚动视图布局,因此我在代码中创建了它们。但是,如果我希望 iPad 也可以使用此视图布局,我该怎么办?
我应该重写 iPad 的布局代码,然后进行一些设备检测吗?最佳做法是什么?
我现在正在制作一个 iphone 应用程序。但将来这个应用程序也应该可用于 iPad。目前我正在使用情节提要,因为以这种方式使其也可用于 iPad 非常容易。
我现在的问题是,一些视图,比如长的个人资料表单,你把它放在一个滚动视图中。但是您不能在情节提要中构建滚动视图布局,因此我在代码中创建了它们。但是,如果我希望 iPad 也可以使用此视图布局,我该怎么办?
我应该重写 iPad 的布局代码,然后进行一些设备检测吗?最佳做法是什么?
我认为更好地检测硬件并编写不同的布局代码。
您可以使用 Apple 的宏:
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
{
// Write your layout code for iPad there
}
else
{
// Write your layout code for iPhone/iPod there
}
解决方案相当简单。首先,我认为您无法在情节提要中创建滚动视图。但这是可能的!你可以在这里找到如何做。
所以现在的解决方案是您专门为 iPad 创建另一个故事板!
下面将对你有用。
#define IS_IPHONE ( [[[UIDevice currentDevice] model] isEqualToString:@"iPhone"] )
#define IS_IPOD ( [[[UIDevice currentDevice] model] isEqualToString:@"iPod touch"] )
#define IS_IPAD ( [[[UIDevice currentDevice] model] isEqualToString:@"iPad"] )
#define IS_IPHONE_5_SCREEN [[UIScreen mainScreen] bounds].size.height >= 568.0f && [[UIScreen mainScreen] bounds].size.height < 1024.0f
#define IS_IPHONE_4_SCREEN [[UIScreen mainScreen] bounds].size.height >= 480.0f && [[UIScreen mainScreen] bounds].size.height < 568.0f
if(IS_IPHONE_5_SCREEN)
{
if(IS_IPHONE)
NSLog(@"Hey, this is an iPhone 5 screen!");
else if(IS_IPOD)
NSLog(@"Hey, this is an iPod 5 screen!");
else
NSLog(@"Hey, this is a simulator screen with iPhone 5 screen height!");
}
else if(IS_IPHONE_4_SCREEN)
{
if(IS_IPHONE)
NSLog(@"Hey, this is a lower iPhone screen than 5!");
else if(IS_IPOD)
NSLog(@"Hey, this is a lower iPod screen than 5!");
else
NSLog(@"Hey, this is a lower simulator screen than 5!");
}
else if(IS_IPAD){
NSLog(@"Hey, this is an iPad screen!");
}
else{
NSLog(@"Hey, this is an ipad simulator screen!");
}
干杯!