【1024's iPhone X】关于iPhone X适配的5点思考


@Jou Email Weibo or Github

预热

#define IS_IPHONE_4 (IS_IPHONE && ([[UIScreen mainScreen] bounds].size.height == 480.0) && ((IS_OS_8_OR_LATER && [UIScreen mainScreen].nativeScale == [UIScreen mainScreen].scale) || (!IS_OS_8_OR_LATER && ([[UIScreen mainScreen] bounds].size.height == 480.0)) ))
#define IS_IPHONE_5 (IS_IPHONE && ([[UIScreen mainScreen] bounds].size.height == 568.0) && ((IS_OS_8_OR_LATER && [UIScreen mainScreen].nativeScale == [UIScreen mainScreen].scale) || (!IS_OS_8_OR_LATER && ([[UIScreen mainScreen] bounds].size.height == 568.0)) ))
#define IS_STANDARD_IPHONE_6 (IS_IPHONE && [[UIScreen mainScreen] bounds].size.height == 667.0  && IS_OS_8_OR_LATER && [UIScreen mainScreen].nativeScale == [UIScreen mainScreen].scale)
#define IS_ZOOMED_IPHONE_6 (IS_IPHONE && [[UIScreen mainScreen] bounds].size.height == 568.0 && IS_OS_8_OR_LATER && [UIScreen mainScreen].nativeScale > [UIScreen mainScreen].scale)
#define IS_STANDARD_IPHONE_6_PLUS (IS_IPHONE && [[UIScreen mainScreen] bounds].size.height == 736.0)
#define IS_ZOOMED_IPHONE_6_PLUS (IS_IPHONE && [[UIScreen mainScreen] bounds].size.height == 667.0 && IS_OS_8_OR_LATER && [UIScreen mainScreen].nativeScale < [UIScreen mainScreen].scale)

每次苹果革新,都随之来一阵痛苦。这次 iPhone X 适配肯定没有例外。
如果不想打开官方文档跳来跳去,关于iPhone X 适配我推荐这篇文章,Supporting iPhone X

过去的适配方案,不区分维度,会令人费解,比如上面贴的宏定义,当我想适配 5.5 英寸的屏幕,我会去判断IS_STANDARD_IPHONE_6_PLUS ,但是这其实代表了多种设备iPhone 6p/iPhone 6sp/iPhone7p/iPhone 8p。
所以,我的梦想是“iPhone 设备适配要针对场景区分维度”,不,也是“世界和平”。

适配的五个维度

0x0 System version

  • @available(iOS XX, *)

0x1 Orientation

  • landscape
  • portrait

0x2 Screen scale

  • x1
  • x2 (retina)
  • x3 (retina)

0x3 Inches

  • 3.5
  • 4.0
  • 4.7
  • 5.5

0x4 Machine

  • iPhone 4/iPhone 4s (3.5 inches)
  • iPhone 5/iPhone 5s/iPhone 5c/iPhone 5se (4.0 inches)
  • iPhone 6/iPhone 6s/iPhone7/iPhone 8 (4.7 inches)
  • iPhone 6p/iPhone 6sp/iPhone7p/iPhone 8p (5.5 inches)
  • iPhone X (5.8 inches)

WISH LIST

GITHUB HREF

ps 最近愈发感觉自己与技术路线走的愈发的远,也愈发的感觉,运营和产品上的积累是增量的,而技术的发展是断层式的迭代,导致很容易归零,沉淀下无用的积累。或许....我热爱的不是技术,而是这个行业。

你可能感兴趣的:(【1024's iPhone X】关于iPhone X适配的5点思考)