从iPhone 5到iPhone 6和Plus,一切都是用代码编写的,提出了解决方案

时间:2015-03-19 08:46:05

标签: ios iphone-5 iphone-6 iphone-6-plus

我有一个支持iPhone 5和4的项目。 我用代码写了一切,即。没有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)

检查设备是否为5 /更少或6 /加,并相应地调整值。

我不确定这个解决方案是否可行。我在模拟器中试过,看起来工作得很好。 Ang的建议?

我也尝试过autoresizingMask,但似乎这个方法需要改变很多东西而且它更复杂。

0 个答案:

没有答案