103 - Cocoa Autolayout
本讲座介绍苹果对IB的又一大手笔的更新,过去的窗口内部设计都是传统的相对位置和定锚的方式估定内部compoment的位置,苹果的方式和微软的窗口的方式是大同小异。这次苹果重新设计窗口的内部设计,提出一种全新的自动布局的方式,非常新颖和功能强大。
这种设计提供了两种布局的方式,第一种是通过IB,在Xcode中的IB中,通过图像的方式,排列和布局窗口。这种方式在其它讲座有专门介绍。本讲座介绍第二种方式,通过编码的方式更深入地剖析苹果这种新布局的原理和API。
基本原理或公式:
根据这个公式,苹果Cocoa平台有一系列支持Class和API,比如NSLayoutConstraint。这个class有许多非常方便使用的API可以用来定义视元之间的关系,而Cocoa背后的操作系统能够根据这些关系协调元与整个窗口的关系,提供许多免费的强大功能,让软件开发者将精力放在很容易理解的元与元的关系上。与微软的平台比较,这是一个非常大的飞跃。
苹果的软件工程师太有想象力了,为了给编码提供更为简练和直观的方式,苹果提出一种ascii艺术,用这样的编码来定义 compoments之间的关系:
讲座还深入讨论了运行中布局是如何实现的,并如何利用编码方式进行布局和调试。这种自动布局带来许多优点:
- 提供限制(constrains)的方式可大大减少过去需要增加的控制布局的编码,constrains非常灵活和功能强大。
- ascii艺术的编码的方式大大简化表述布局和分层关系
- 设计十分灵活方便
- 容易支持语言的当地化
- 表述方式来表达元与元之间的关系、最小和最大限制以及优先考虑权
104 - Advanced Scroll View Techniques
Scroll View是一个非常有用的可视元,在iOS中有广泛的使用,如照片图像。本讲座介绍苹果为此增加的新的API和使用技巧的演示:
- 如何实现无限循环移动
- 如何增加静态的可视元,如图像上部的提示和注脚
- 如何处理特殊的Touch,比如采用UIScrollView和UIGestureRecognizer来处理滚动移动和刷动
- 放大之后如果将图像的精度提高
参考资料