0%

iOS 的屏幕旋转有很多弯弯绕的地方, 旋转的成功与否取决于多个层面的共同作用.

Docker 是一个开源的应用容器引擎, 基于 Go 语言 并遵从 Apache2.0 协议开源.

Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级, 可移植的容器中, 然后发布到任何流行的 Linux 机器上, 也可以实现虚拟化.

容器是完全使用沙箱机制, 相互之间不会有任何接口(类似 iPhone 的 app), 更重要的是容器性能开销极低.

iOS 的控件有很多种, 每种的设置方式也不相同. 对我来说, 有些控件的 color, 背景, 内容偏移等设置经常容易混淆, 这里记录下每种控件的简单使用, 方便实际运用时快速查阅

himg

iOS 的布局方式有

  • 绝对布局
  • 约束方式进行 autoLayout 布局

在这两种布局基础上, 我们可以使用

  • stroryboard/xib 布局

    适合团队, 条理清晰, (可能) 约束计算速度更快

  • 纯代码进行布局.

    storyboard/xib 的优点则是更加直观, 缺点则一大堆, 比如 view 稍多的情况下打开 storyboard 界面都会非常卡顿, 团队合作经常发生冲突需要进行协调.

因此使用纯代码布局是一劳永逸的一种方法. 其实 storyboard/xib 布局的原理和思想都是相同的, 无非就是对上下左右, 宽高进行约束, 当一个控件的约束足够时则约束完成.

本文所有的讨论都基于纯代码布局, 以及代码布局库 SnapKit.

himg

值类型和引用类型相比, 最大优势可以高效的使用内存, 值类型在栈上操作, 引用类型在堆上操作, 栈上操作仅仅是单个指针的移动, 而堆上操作牵涉到合并, 位移, 重链接, Swift 这样设计减少了堆上内存分配和回收次数, 使用 copy-on-write 将值传递与复制开销降到最低

himg