Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/108.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
Ios 从iPhone5到iPhone6及以上,所有内容都是用代码编写的,提出了解决方案_Ios_Iphone 5_Iphone 6_Iphone 6 Plus - Fatal编程技术网

Ios 从iPhone5到iPhone6及以上,所有内容都是用代码编写的,提出了解决方案

Ios 从iPhone5到iPhone6及以上,所有内容都是用代码编写的,提出了解决方案,ios,iphone-5,iphone-6,iphone-6-plus,Ios,Iphone 5,Iphone 6,Iphone 6 Plus,我有一个支持iPhone5和iPhone4的项目。 我用代码编写所有东西,即没有XIB或故事板。 例如,在自定义单元格中,有一个imageView,如: self.thumbnailImageView = [[UIImageView alloc]initWithFrame:CGRectMake(10, 10, 300, 180)]; 为了支持6和更高版本,我想缩放框架以适应6和更高版本的屏幕,所以我做了如下操作: self.thumbnailImageView = [[UIImageView

我有一个支持iPhone5和iPhone4的项目。 我用代码编写所有东西,即没有XIB或故事板。 例如,在自定义单元格中,有一个imageView,如:

self.thumbnailImageView = [[UIImageView alloc]initWithFrame:CGRectMake(10, 10, 300, 180)];
为了支持6和更高版本,我想缩放框架以适应6和更高版本的屏幕,所以我做了如下操作:

self.thumbnailImageView = [[UIImageView alloc]initWithFrame:CGRectMake(CAL(10), CAL(10), CAL(300), CAL(180))];    
如果CAL是Marco:

#define IS_IPHONE_4_OR_LESS (IS_IPHONE && SCREEN_MAX_LENGTH < 568.0)
#define IS_IPHONE_5 (IS_IPHONE && SCREEN_MAX_LENGTH == 568.0)
#define IS_IPHONE_5_OR_LESS (IS_IPHONE && SCREEN_MAX_LENGTH <= 568.0)
#define IS_IPHONE_6 (IS_IPHONE && SCREEN_MAX_LENGTH == 667.0)
#define IS_IPHONE_6P (IS_IPHONE && SCREEN_MAX_LENGTH == 736.0)


#define CAL(x) (IS_IPHONE_5_OR_LESS? x : RECAL(x) )
#define RECAL(x) (IS_IPHONE_6?RECAL_6(x):RECAL_6P(x))
#define RECAL_6(x) (x*375.0/320)
#define RECAL_6P(x) (x*414.0/320)
#定义为IPHONE 4 4或更小(是IPHONE和屏幕MAX 568.0)
#定义IS_IPHONE_5(IS_IPHONE&&SCREEN_MAX_LENGTH==568.0)

#定义IPHONE是5还是更少(IPHONE和SCREEN是最大长度吗?如果前面有其他梯子,祝你们好运:)你们是什么意思?这会导致效率问题吗?这意味着你必须管理大量的布局条件。我建议你咬紧牙关,转换成故事板——然后她会看到另一个新的屏幕尺寸,你不必做任何事情