第1章 Interface Builder概要
1.1 Interface Builder简介
1.1.1 Interface Builder是什么
1.1.2 xib是什么
1.1.3 拓展学习:Bundle概念的理解
1.1.4 理解Bundle对于IB的指导意义
1.1.5 storyboard是什么
1.1.6 nib是什么
1.1.7 storyboardc是什么
1.2 Interface Builder的优点
1.2.1 开发和维护效率高
1.2.2 减少大量的UI代码和“胶水代码”
1.2.3 适配变得十分简单
1.2.4 IB也可以做一些非UI的事情
1.2.5 利用IB学习控件可以达到事半功倍的效果
1.3 Interface Builder的缺点
1.3.1 IB的执行效率没有纯代码高
1.3.2 使用IB开发的过程中容易出现一些小问题
1.3.3 有一定的学习成本
1.3.4 文件易冲突
1.3.5 没有代码表达清晰
1.3.6 不利于代码的封装和工程架构的组织
1.4 Interface Builder学习的特点
1.4.1 简单、容易入门
1.4.2 容易犯错误
1.4.3 有很多“坑”,需要积累属于自己的经验
1.5 Interface Builder的发展
1.6 拓展学习:CocoaPods
1.6.1 CocoaPods介绍
1.6.2 Podfile文件与CocoaPods的三种依赖方式
1.6.3 podspec文件
第2章 使用Interface Builder
2.1 解决冲突
2.1.1 解决普通IB文件冲突
2.1.2 解决Xcode 8引起的IB文件冲突
2.2 创建xib文件
2.3 “关联”xib文件与源文件
2.3.1 “关联”xib文件与UIView子类的源文件
2.3.2 @IBOutlet与@IBAction
2.3.3 拓展学习:设计模式之MVC
2.3.4 理解File's Owner
2.3.5 “关联”xib文件与UIViewController子类的源文件
2.3.6 总结xib“关联”源文件
2.4 使用xib
2.4.1 使用与UIView子类源文件关联的xib
2.4.2 使用与UIViewController子类源文件关联的xib
2.4.3 xib嵌套使用的问题
2.4.4 深入学习:加载非main bundle中的资源
2.5 拓展学习:创建Bundle
2.5.1 使用简单的方法创建普通的Bundle
2.5.2 创建基于macOS Bundle的Target来获得Bundle
2.6 创建storyboard
2.7 使用storyboard
2.8 对比xib和storyboard的使用情况
2.9 拓展学习:App启动过程分析与UIApplication自定义举例
第3章 全面学习xib
3.1 操作页面
3.2 介绍Utilities中的检查器
3.2.1 Show the File inspector(文件检查器)
3.2.2 Show Quick Help inspector(快速帮助检查器)
3.2.3 Show the Identity inspector(ID检查器)
3.2.4 Show the Attributes inspector(属性检查器)
3.2.5 Show the Size inspector(尺寸检查器)
3.2.6 Show the Connections inspector(连接检查器)
3.2.7 “连线”方式总结
3.3 Show the Object library菜单
3.4 在xib中使用UITableView
3.4.1 将基于sb的工程变成基于xib的工程
3.4.2 利用xib简单展示UITableView
3.4.3 利用xib自定义UITableViewCell
3.4.4 利用xib自定义UITableViewCell的使用
3.5 Asset Catalog
3.5.1 使用Asset Catalog
3.5.2 Asset Catalog的优缺点
第4章 在Interface Builder中使用Auto Layout
4.1 IB与Auto Layout
4.1.1 学习Auto Layout的特点
4.1.2 在IB中使用Auto Layout的优缺点
4.2 深刻理解Auto Layout
4.2.1 如何理解“Auto Layout有别于frame系统”
4.2.2 如何理解“添加约束”
4.2.3 如何理解“间接表示”
4.3 约束
4.3.1 Auto Layout的数学公式
4.3.2 约束属性
4.3.3 约束关系
4.3.4 multiplier与constant
4.3.5 约束的创建与添加
4.3.6 约束的优先级
4.4 Auto Layout相关菜单介绍
4.4.1 Update frames介绍
4.4.2 Embed In Stack介绍
4.4.3 Align介绍
4.4.4 Add New Constraints介绍
4.4.5 Resolve Auto Layout Issues介绍
4.5 Show the Size inspector再介绍
4.5.1 Constraints菜单
4.5.2 Intrinsic Size——固有尺寸
4.5.3 Content Compression Resistance——压缩阻力
4.5.4 Content Hugging——内容吸附
4.5.5 使用NSLayoutConstraint与@IBOutlet“连线”
4.6 设置约束的方法介绍
4.6.1 在IB中设置约束
4.6.2 用苹果原生的API设置约束
4.6.3 用VFL(Visual Format Language)设置约束
4.6.4 通过第三方库设置约束
4.7 在Interface Builder中使用Auto Layout进行布局的实践
4.7.1 用Auto Layout布局拨打电话页面
4.7.2 stackView的使用
4.7.3 拓展学习:FDStackView
4.7.4 拓展学习:“黑魔法”——实现在低版本中使用高版本中才存在的类
4.7.5 Auto Layout的异类——UIScrollView
第5章 storyboard全面学习
5.1 Inspector其他菜单和标签的使用
5.1.1 使用View Controller
5.1.2 使用Page View Controller
5.1.3 使用Table View Cell
5.2 使用Extra View
5.3 使用storyboard中的segue
5.3.1 使用Relationship Segue
5.3.2 常见的segue选项
5.3.3 如何利用segue传参
5.3.4 更灵活的segue
5.3.5 自定义的segue
5.3.6 拓展学习:iOS中内存管理简介
5.3.7 深入学习:Embed Segue
5.3.8 Embed Segue与UIPageViewController的配合使用
5.3.9 深入学习:Unwind Segue
5.4 在sb中使用UITableView
5.4.1 在sb中使用自定义tableViewCell
5.4.2 在sb中给UITableView添加tableHeaderView和tableFooterView
5.4.3 segue在UITableView中的使用
5.4.4 在sb中使用静态cell
5.5 在sb中使用UICollectionView
5.6 Use as Launch Screen
5.6.1 Launch Screen的使用
5.6.2 使用Launch Screen的好处
第6章 Interface Builder进阶
6.1 Use Trait Variations
6.2 User Define Runtime Attribute
6.3 IB文件的加载过程
6.4 本地化
6.4.1 本地化的介绍
6.4.2 文本的本地化
6.4.3 Info.plist的本地化
6.4.4 图片资源的本地化
6.4.5 App内设置语言的本地化
6.5 Storyboard Reference的使用
6.6 使用RBStoryboardLink
6.7 用Object重构“神VC”
6.7.1 使用Object
6.7.2 用Object重构“神VC”的思路
6.7.3 如何用好Object
6.8 用External Object重构“神VC”
6.8.1 xib中External Object的使用
6.8.2 用External Object重构“神VC”的思路
6.8.3 Object和External Object总结
6.9 IB中的关键字总结
6.9.1 @IBAction
6.9.2 @IBOutlet
6.9.3 @IBDesignable
6.9.4 @IBInspectable
6.9.5 User Defined Runtime Attributes、@IBDesignable、@IBInspectable总结
第7章 在Interface Builder开发中的技巧和bug
7.1 调整View的尺寸,使它与显示内容的尺寸相适应
7.2 查看各个View之间的距离
7.3 在IB中添加参考线
7.4 快速调整底层被挡住View的位置
7.5 快速查看View的UI层次关系
7.6 “连线”小技巧
7.7 使用“吸管”快速设置颜色
7.8 IB中的复制与粘贴
7.9 利用Media Library快速设置图片
7.10 IB开发中遇到的一些小bug
· · · · · · (
收起)