前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >iOS进阶-优雅的跟紧iOS系统变化

iOS进阶-优雅的跟紧iOS系统变化

作者头像
sweet说好的幸福
发布2020-12-23 09:55:55
8090
发布2020-12-23 09:55:55
举报
文章被收录于专栏:sweet_iOS

2018年结束的时候,跟组内成员讨论新年的工作规划。其中探讨了一个比较有意思的话题:怎么紧跟iOS系统变化?

每年的苹果开发者大会,都会引入新的技术方案和流行框架,一方面是技术革新的变化,另一方面,也是互联网的发展前瞻。如何紧跟iOS系统变化,保持持续的饥饿感和竞争力,确保自己在技术浪潮中不掉队?一句话:跟紧苹果系统API新变化。

automaticallyAdjustsScrollViewInsets

从比较久远的iOS6升级到iOS7,设计风格从拟物化到平面化的过渡,引领了智能手机行业的一次UI变革。同时,对很多老程序员而言,那是一段恐怖的时期,UIViewController的view的坐标系改变,造成了很多基类的重新布局,这个时候,iOS系统API引入了automaticallyAdjustsScrollViewInsets,这是iOS系统从6到7因为坐标系改变做适配的最优雅的方法。

automaticallyAdjustsScrollViewInsets.png

纯代码还是storyBoard?

2013年,很多iOS同行开始讨论iOS开发应用那种方式效率高,是纯代码还是xib,亦或是storyBoard?在我看来,效率是经验积累后的产物,那种方式因人而异。当然,今天我想从另外一个角度去看待这个问题,我们需要从产品和成员的角度去看待这个问题,在同等掌握程度下,一个人开发小型的应用,产品需求很明确,明显采用storyBoard更能够节约时间,也便于维护。涉及到多人开发业务复杂,模块之间嵌套和相互访问频繁,还是采用纯代码,以路由的形式交互更合适。

iPhoneX的优雅适配

2017年,苹果推出iPhoneX,由于代码风格的迥异,适配方案也是很多。比如我在frame比较多的代码里面设置了两个全局变量kScreenTopHeight和kScreenBottomHeight,根据设备型号和statusBar与tabbar等去分别赋值;在采用约束比较多的代码里面采用topLayoutGuide以及bottomLayoutGuide,当然,前提是摒弃frame的概念,而是用约束layout的思想。

详细情况需要读者们去阅读官方文档,接下来我将简单列举两个例子来说明topLayoutGuide以及bottomLayoutGuide的使用。

在iOS11适配之前,采用marsory布局。

10887362-8b78180ad6ffb1fe.png

很明显,两个子视图被遮挡,如果这个样子的话,那么就会有很多人说:好办,直接让约束的offset设为64.0或者49.0就可以了。我只能说这样写太low了,如果出现像iPhone X这样在尺寸上大改变的话,难道在再重新适配?放心,苹果自然给出了最优雅的解决方案,那就是使用上面所说的topLayoutGuide以及bottomLayoutGuide,代码块如下:

4.png

深究一下Marsory的源码,可以看到mas_topLayoutGuide和mas_bottomLayoutGuide的定义就是我们提到的topLayoutGuide和bottomLayoutGuide。

5.png

6.png

而到了iOS11,topLayoutGuide和bottomLayoutGuide被iOS系统摈弃,我们要因地制宜,采用Safe Area。

先看一下定义:

7.png

只需要简单替换即可:

10887362-4975b4de764714cf.png

保持敏感性

以上是几个简单的示例,想强调的是iOS开发,需要优雅的跟紧iOS系统变化。对赖以生存的技术,要时刻保持相当的敏感性,有很好的嗅觉能力,同时,注意学习,比如ARKit,HealthKit等每次开发者大会引入的框架要尝试去应用,这样,你才能永远站在行业的大军中。

同时,也要把握大环境的变化,例如一直都在变革的跨平台保持密切关注,ReactNative,Weex,到现在很火的Flutter。

2019年,开年大吉,自勉!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • automaticallyAdjustsScrollViewInsets
  • 纯代码还是storyBoard?
  • iPhoneX的优雅适配
  • 保持敏感性
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档