每周总结 - 0622

  上周博客落了一篇,说起来其实上周还没有本周忙,上周主要是测试兄弟公司开发的语音库,和针对新项目给出一个开发周期的预估,虽然一周都不是很忙,但是最后一天因为很久之前的老项目出了问题,需要维护,所以就没有抽出时间来写博客了。
  本周主要在弄一个儿童绘本读物的 App,因为主要的几个页面,需求里都是用现成的内容 SDKh5 实现,所以我的工作还是比较轻松的,因为这个原因也让我有空对自己的知识进行一个归纳整理,包括对一些模棱两可的知识点的提炼。
  比如在新项目里的内容 SDK 的调用,他初始化之后,可以获取到一个控制器,在我的项目中使用,我是直接封装进 tabbar 中,类似于这样使用:

Swift
1
2
3
4
5
6
7
8
let v1 = XYSDK.obtainRootNavigationRootViewController() //SDK 获取到的控制器
v2.tabBarItem = ESTabBarItem.init(XYBasicContentView(),title: "听听", image: UIImage(named: "icon_gang"), selectedImage: UIImage(named: "")) //定义 tabbarItem 显示文字和图片
let n1 = UINavigationController.init(rootViewController: v1)
let v2 = UIViewController()
let n2 = UINavigationController.init(rootViewController: v2)
.....
let n5 = UINavigationController.init(rootViewController: v4)
tabBarController.viewControllers = [n1, n2, n3, n4]

  但是有个问题就是 tabbar 的文字不显示为我设置的“看看”,而是显示为 SDK 内部自定义 “推荐”,放在之前我可能会抓耳挠腮的在 tabbar 的显示问题是不断尝试,但是基于对控制器的层级理解,我创建了一个集成于 UIViewController 的控制器界面,并在 viewDidLoad 中写入一下代码:

Swift
1
2
3
let musicVC = XYDMSDK.obtainRootNavigationRootViewController()
self.addChild(musicVC!)
self.view.addSubview(musicVC!.view)

  这段代码的含义也就是把一个控制器包装到另一个控制器内部,然后 SDK 获取到的控制器就不会对 tabbar 造成什么影响了。
  除了对问题有了更灵活的解决以外,在新的项目中也尝试使用新的技术,和之前没用到的东西,比如 autolayout 布局,和 UIStackViewSwiftautolayout 布局我是用现成的框架 Snap 实现的,简单易上手。上下左右的约束设置也很好理解,按 X 轴 Y 轴,从左到右,从上到下,为正,当使用 make.right.equalToSuperview() 时,如果想设置,离父视图的右边距为 27,那么按照刚才的理解也就是,父视图的边缘位置往回(左)走 27 个小格,也就是:make.right.equalToSuperview().offset(-27),如果写成 .offset(27),那此时 make 的这个视图右边缘是处在父视图再往右 27 个小格的位置。这是基本使用。有一点值得注意的是,当使用 autolayout 布局时,你要获取到视图的 frame,需要在获取之前调用self.view.layoutIfNeeded()去强制更新下布局才可以获取到不为空的布局参数。
  关于 stackView 的使用,这几天使用的感受是他就像一个内部封装了 autolayout 布局的视图,只要我们给好约束,内部视图就会按照比例显示,这种特性可以应用在当页面有很多重复性的布局,但用 UIcollectionviewUItableview 解决的效果又不是很理想的情况下使用。
  关于技术的学习,还有就是在看业内大佬戴铭老师在极客时间上的课了。除了引导语,本周就看了两篇,第一篇讲整体框架,提到一个 iOS 开发的知识体系,并给出了思维导图:
  
  对于我来说大概可以起到一个查缺补漏的作用,因为之前都是面向工作内容开发,不明白哪里补哪里,杂食性的学习习惯导致知识体系臃肿但并不健壮。这个导图很直观的列出了各个部分需要了解的内容,也在这个基础上给出了深入学习的分支。虽说尽信书不如无书,但在这个阶段的我还是需要多信信书的。而且戴铭老师在文章里的有个观点我觉得很好,大概是说现在互联网时代,新技术层出不穷的冒出来,但其实技术的本质都是殊途同归的,就像从天津去北京,选择坐车还是坐飞机,目的都是一致的。只要能在一门技术上深耕,学的明白透彻,那再去学其他的技术,就很容易触类旁通,举一反三的拿下了。
  另外一篇是讲怎么优化 app 启动时间的。概不累述
  接下来可以解释本周为什么很忙了,除了业内的学习,业外时间我报的专升本课程上个礼拜去上课,发现落了几节课之后老师都快把书讲完了,数据库老师布置课堂习题做的时候,我心里不断被黑人问号脸刷左心室左心房右心室右心房。所以这个礼拜就把重点稍稍往自己的学习上倾斜了一点,早上背单词,中午午休前刷题,晚上回去除了一两天的健身跑步以外,继续我之前的素描课程,618 剁手买了个 iPad,也就顺便再加了一个手绘教程。最近也小有成果~
  
  算起来工作以后我似乎比在学校里勤勉很多,但这种改变的本质并不是那种以前我没得选,现在我想做个好人的洗心革面,而是更多的是出来工作后的焦虑所导致我不得不去做一点什么来抵抗这种焦虑,或者说让自己忙起来而不去焦虑。或许我下一个学习内容可以尝试看心理学领域~