具体描述
这是一本详细讲解如何使用Interface Builder的书籍,主要讲解如何利用Interface Builder快速、高效地开发UI。《iOS UI开发捷径——利用Interface Builder高效、优雅地开发UI》从Interface Builder菜单、UIKit控件这些基础知识到如何使用Interface Builder鲜为人知的高级功能、如何利用Interface Builder进行代码的优化等都进行了详细讲解,内容覆盖了利用Interface Builder开发UI所涉及的各个知识点。除此之外,《iOS UI开发捷径——利用Interface Builder高效、优雅地开发UI》还着重介绍了经常与Interface Builder配合使用的Auto Layout,以及很多与UI学习甚至与iOS开发学习相关的知识。
《iOS UI开发捷径——利用Interface Builder高效、优雅地开发UI》理论与实践相结合,理论部分全面而且深入,让读者知其所以然,实践部分不仅讲到了在开发中经常遇到的情况,而且也关注了一些非常重要的细节。《iOS UI开发捷径——利用Interface Builder高效、优雅地开发UI》适合想快速、高效地开发UI,想学习Interface Builder的各个层次的开发人员阅读,对于iOS的UI学习来说,《iOS UI开发捷径——利用Interface Builder高效、优雅地开发UI》也具有很强的指导意义。
作者简介
目录信息
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
· · · · · · (收起)
读后感
用户评价
我特别关注移动端无障碍访问(Accessibility)的实现,这块内容往往在很多“速成”类的书籍中被完全忽略,因为开发者总觉得这部分是“锦上添花”或者可以“最后再做”。然而,这本书里关于如何正确地标记UI元素、如何为自定义控件实现VoiceOver支持的章节,简直是教科书级别的。作者不仅讲解了如何设置`accessibilityLabel`和`accessibilityHint`,更重要的是,它阐述了如何处理多个相关联控件的访问顺序和逻辑分组,这对于提升所有用户的体验,尤其是视障用户,至关重要。我曾经负责过一个包含大量表单输入的模块,因为Accessibility实现不当,被测试团队打回了好几次。阅读了这本书中关于如何利用`accessibilityElements`数组来重写默认遍历顺序的方法后,我很快就解决了那个历史遗留问题。这说明这本书的“捷径”并不仅仅是关于“快”,更是关于“全”和“规范”,它确保你走出的捷径是通向高质量、符合苹果设计规范的终点的,而不是为了赶工而留下的技术债。
坦白讲,市面上的iOS开发书籍往往要么过于偏向底层C/Objective-C的细节,要么就是停留在Swift语言特性的展示上,很少能有这样一本能把“如何快速、高质量地实现一个现代化的iOS界面”这个核心诉求讲得如此透彻的书。我尤其欣赏作者在处理动画和过渡效果时的那种务实态度。很多教程对Core Animation的讲解是碎片化的,讲了`CABasicAnimation`却不告诉你如何优雅地组合多个动画序列,导致我的App看起来总像“缺了点灵气”。这本书里有一章专门讲了如何利用`UIViewPropertyAnimator`构建交互式、可中断的动画,这简直是救了我一命!当时我正在做一个需要用户可以拖动进度条来控制页面切换进度的功能,传统方法实现起来逻辑极其复杂,但通过书中介绍的策略,我用更少的代码实现了非常流畅和自然的过渡效果,用户体验瞬间提升了一个档次。此外,对于那些看起来简单但实现起来总有怪癖的控件,比如自定义的Tab Bar Controller或者复杂的导航栏联动,作者也给出了非常清晰的实现思路,不是那种硬套官方Demo的写法,而是基于实际开发中遇到的陷阱和最佳实践进行提炼总结。这种从实战中凝练出来的“捷径”,对于我们这些追求效率的开发者来说,价值是无法估量的。它让你少走弯路,直接站在巨人的肩膀上,看到最有效率的那条路。
这本书的排版和案例的精炼程度也让人印象深刻。很多技术书籍为了凑字数,会把一些大家都知道的基础语法拿出来大篇幅讲解,让人读起来昏昏欲睡。但《iOS UI开发捷径》给我的感觉是,每一页信息密度都非常高,每一个代码块都似乎在告诉我:“这是生产环境验证过的用法,可以直接复制优化后使用。” 比如,作者在讲解集合视图(Collection View)布局时,没有浪费时间在UICollectionView的基本设置上,而是直接深入到如何利用`UICollectionViewCompositionalLayout`构建复杂的多分区、异构视图。要知道,掌握这个新特性是提升App现代感和界面丰富性的关键,但网上的资料要么不全,要么就是官方文档那种晦涩的描述。这本书直接给出了几个非常漂亮、且具有代表性的布局案例,从瀑布流到复杂的卡片堆叠,讲解了如何调整元素的间距、组的头尾视图,以及如何高效地处理数据源更新带来的性能影响。这对我来说,极大地拓宽了我在列表展示方面的设计思路,让我不再满足于简单的线性布局,而是敢于尝试更具视觉冲击力的排版。这种“授人以渔”又“直接给鱼”的平衡掌握得恰到好处。
从设计模式的角度来看,这本书也给了我很多启发,它不仅仅是一本技术手册,更像是一本关于“如何组织iOS UI代码”的哲学指南。在SwiftUI还未完全普及之前,或者说在大量现有UIKit项目需要维护的背景下,如何写出既能快速迭代又易于维护的UI代码,是一个永恒的挑战。书中对MVC、MVVM在UI层面的应用进行了深入探讨,特别是针对如何将业务逻辑和UI状态剥离,作者提供了一套非常清晰的边界划分方法论。比如,它强调了如何利用Combine(即使在UIKit项目中)来处理异步事件流,从而避免了大量的闭包回调嵌套,使得界面的数据绑定逻辑变得异常清晰。这套方法论让我彻底改变了过去那种将复杂的网络请求处理和UI更新混在一起的混乱状态。最终的结果是,我负责的模块代码量减少了约30%,而功能复杂度却保持不变甚至略有提升,最重要的是,当出现Bug时,排查定位的速度快了很多。这本书的价值,远超出了单个功能实现的效率提升,它提升的是整个团队对“好代码”的认知和实践标准。
这本《iOS UI开发捷径》我真是相见恨晚啊!说实话,我之前为了搞定那些复杂的界面布局和动效,简直是踩了无数的坑。特别是Auto Layout,刚开始接触的时候,简直像在和一台固执的机器对话,稍微不注意约束条件一多,界面就瞬间爆炸,重构起来简直是噩梦。这本书的厉害之处就在于,它没有一味地堆砌理论,而是直击痛点,提供了一套非常实用的“捷径”思维。比如,它对Stack View的理解和应用,简直是点亮了我对自适应布局的认知。以前我总想着自己去写一堆复杂的`NSLayoutConstraint`,现在发现,很多时候用Stack View配合一些巧妙的优先级设置,就能优雅地解决问题,而且代码量大大减少,可读性飙升。再比如,书中介绍的几种常用的自定义View的封装模式,让我彻底摆脱了“复制粘贴式”的开发习惯。以前为了做一个稍微特殊一点的控件,我得在网上找各种零散的教程,拼凑出一个半成品。这本书却系统地梳理了从`UIView`的初始化到`layoutSubviews`的完整生命周期,并给出了实战中非常高效的性能优化技巧,比如关于图形渲染层的理解,对于处理大量列表或复杂动画时,帧率的稳定至关重要。读完之后,我感觉自己对UI的底层逻辑有了更深的把握,不再是简单地堆砌API,而是真正理解了视图是如何被绘制和布局的,这对于我后续接手更大型、更精细化的项目,无疑是打下了坚实的基础。
我觉得这本书挺不错的呀,有好多细微的知识点,而这些细微的知识点是你去百度谷歌准备搜索时无法用文字描述清楚的。一天半看完后,有点“膨胀的感觉”,^_^
书一般吧, 大部分都会, 不过还是学到一些, 印刷错误有点多啊
开始看的时候觉得有点差,对初学者不够友好,对有一定基础的又过于简单,但是看完还是发现学到了很多。
读完全书,感觉到xib和storyboard确实很强大,可以慢慢的用起来。当然项目赶进度的话还是要选择自己最熟悉的,这样开发效率较高,出了问题也好找!
读完全书,感觉到xib和storyboard确实很强大,可以慢慢的用起来。当然项目赶进度的话还是要选择自己最熟悉的,这样开发效率较高,出了问题也好找!