DEVELOPMENT NOTES · 48 篇
UIKit 与图形动画
一个界面效果,往往牵涉布局、事件和绘制三件事。这组文章从具体控件出发,记录当时如何实现列表、富文本、转场和动画,适合按手头的问题挑着读。
怎么读这一组
- 先找对应的控件或交互:列表高度、事件传递、输入框和弹出视图,比从动画代码直接开始更容易定位问题。
- 读动画时把初始状态、最终状态、时间和坐标变换分开记录,再比较 UIView 动画、关键帧和 Core Animation 的写法。
- Core Text、Core Graphics 和波浪效果可以接着读;留意示例的坐标系、绘制范围及 Swift 版本,不要只照搬视觉参数。
这是 2015–2017 年的历史记录,示例未在本次整理中重新运行验证。先核对文章日期和版本说明,再决定哪些思路适合当前项目。
主题文章
48 篇 · 新到旧-
iOS 两行代码实现自定义转场动画
介绍 WTKTransitionAnimate 的调用方式,通过导航代理和工厂方法选择转场,再结合拖动手势与百分比进度控制实现交互式返回动画,说明封装内部的组织思路。
-
iOS开发之UITextField的那点事
针对文本输入长度、数字和金额限制、中文联想及键盘遮挡等问题,利用分类与运行时组织可扩展的输入规则,再通过键盘通知调整界面位置。
-
iOS开发之按钮动画
承接 Core Animation 基础,用 CALayer、CABasicAnimation 与动画组实现按钮的渐变和形变,说明图层属性、时间设置以及多个动画配合时的组织方式。
-
iOS开发之百度外卖APP个人中心头像<浪>起来的动画效果
拆解个人中心头像周围的波浪效果,利用 CADisplayLink 驱动刷新、三角函数生成曲线,再交给 CAShapeLayer 绘制,说明连续波形动画所需的组成部分。
-
iOS游戏开发没有你想的那么难--Hardest
介绍用 Objective-C 与 UIKit 实现 Hardest 小游戏的整体结构,覆盖关卡选择、游戏状态、分数结算、音效和存档,并说明专用游戏引擎与此示例的适用差别。
-
iOS开发之复杂动画之抽丝剥茧(Objective-C & Swift)
将一个欢迎页复杂动画拆成圆形缩放、椭圆挤压、边缘凸起、旋转和波浪填充等阶段,逐步安排图层与路径变化,展示如何把视觉效果转换为可实现的动画步骤。
-
iOS动画CoreAnimation浅谈
围绕 CALayer、CAAnimation 与 CAAction 介绍 Core Animation,解释图层和动画对象的关系、时间控制与动作查找,再通过示例理解隐式和显式动画的组织方式。
-
分分钟解决iOS开发中App启动广告的功能
封装启动广告视图,支持全屏或底部保留标志的两种布局,通过 SDWebImage 获取广告图片,再用透明度动画与 block 回调处理显示、点击和关闭等事件。
-
iOS开发之动画篇-碎片动画
通过 UIView 的 maskView 解释遮罩如何影响内容显示,再把遮罩拆分成多个区域并分别安排动画,逐步构建碎片化展示与图片轮播过渡效果。
-
iOS开发之超链接富文本
利用 Core Text 绘制属性字符串,在预留的文字位置插入图片并实现超链接交互,再比较 TextKit 的处理方式,串起聊天表情与富文本排版所需的基本流程。
-
iOS开发之如何制作番茄钟App
围绕番茄钟应用串起定时、通知提醒、音乐播放和 Today Widget,并整理卡片布局、转场、xib 与 URL Scheme 等实现入口,适合结合工程了解功能如何组合。
-
iOS开发动画篇之layout动画深入
通过登录页的账号列表展开与按钮收缩,演示调整顶部、高度和左右边距约束后触发布局动画,进一步说明视图层级与约束变化如何配合形成连续过渡。
-
Swift之实现类似于格瓦拉启动页中的放大转场动画
从普通导航 push 过渡到圆形放大转场,利用 CALayer 遮罩控制页面显露范围,再加入手势驱动动画;正文以 Swift 展开,并提供 Objective-C 示例参照。
-
iOS开发仿微信(WeChat)系列(七)
拆解聊天输入栏与消息单元格,用 block 将发送和显隐事件交给控制器,再根据消息归属配置头像、拉伸气泡背景,并在模型中计算尺寸以适配不同长度的消息。
-
学习Swift你应该懂点Core Graphics (长篇高能)
从获取绘图上下文和建立路径开始,以 Swift 演示矩形、圆、曲线、文字和图片绘制,再扩展线性与径向渐变、混合模式、坐标变换以及位图和 PDF 输出。
-
iOS开发之Layout动画初体验
从横竖屏下的文本布局说明约束的作用,再拆解随列表滚动变化的界面动画,通过调整约束值控制元素位置和尺寸,演示 Auto Layout 与动画结合的基本过程。
-
Github源码推荐:(02.22):高仿小日子Swift2.0,高仿爱鲜蜂Swift2.0
选编 Swift 2.0 实现的小日子和爱鲜蜂两个仿制项目,提供 SmallDay、LoveFreshBeen 仓库及作者介绍入口,便于结合完整工程观察页面组织与界面实现。
-
iOS开发Swift自定义下拉刷新如此简单
使用 xib 创建文字视图覆盖 UIRefreshControl 的默认样式,分阶段旋转、变色和缩放文字,再模拟数据加载与插入,串起自定义下拉刷新从开始到结束的流程。
-
iOS开发自定义转场动画实战讲解
从转场中 from、to 与 presenting 的角色区别出发,逐步实现自定义模态和导航转场,再扩展交互式动画与转场协调器,解释复用动画逻辑的组织方式。
-
iOS开发动画篇之Transform和KeyFrame动画
通过季节文字变化和落叶动画说明仿射变换与关键帧动画,逐步组合缩放、平移和旋转,讨论形变参数及动画阶段安排对最终运动轨迹的影响。
-
Swift2.0之CoreText排版神器(续)
在 Core Text 基础排版之上,分析基线、上升部和下降部等字体度量,逐行绘制统一中文与 emoji 的行高,再扩展链接与提及识别等富文本交互。
-
iOS开发仿微信(WeChat)系列(三)
继续完成仿微信主界面,记录从 xib 暴露约束并按屏幕调整 constant、微调导航栏按钮位置,以及使用 SDWebImage 占位图加载图片的具体做法。
-
Swift2.0之CoreText排版神器(长篇高能)
从富文本属性设置进入 Core Text,介绍字体、颜色与文本范围,再结合底层排版和绘制步骤实现图文混排,帮助理解复杂文本界面所需的基本对象。
-
iOS开发仿微信(WeChat)系列(二)
搭建仿微信的通讯录、发现和个人页面,复用分组 UITableView 与自定义个人信息 Cell,并用排序和分组数据组织联系人列表,展示多个页面的初始界面结构。
-
iOS开发仿微信(WeChat)系列(-)
仿微信系列的开篇先整理工程与 MVC 文件夹,建立公共控制器,再创建各功能页和 UITabBarController,重点说明后续页面共享的导航骨架如何搭建。
-
Cell特效之图片随着TableView的滑动上下移动
根据单元格中心与父视图中心的偏移调整图片位置,使图片随 UITableView 滚动形成视差,并记录自定义 Cell 与可见项更新方式,附改编代码和原项目链接。
-
iOS开发动画篇之从UIView动画说起
以输入框进入和按钮出现的登录动画为例,介绍 UIView 可动画属性、时间与选项参数,再加入弹簧动画,帮助理解位置、透明度与形变如何组合成连续效果。
-
iOS开发之视觉差动画效果详解
把视差效果拆成多层视图的位置关系,通过拖动中间层、补偿文字层偏移和裁剪越界内容,让文字相对底层保持不动,解释遮挡与位移如何共同形成视觉差。
-
iOS开发之CollectionViewFlowLayout实现LOL皮肤选择动画
通过自定义 UICollectionViewFlowLayout 实现英雄皮肤卡片选择效果,说明如何调整布局属性和滚动停止位置,再将布局子类接入列表以完成居中切换动画。
-
iOS开发仿简书、淘宝等等App的View弹出效果
将仿简书和淘宝的弹出效果拆成内容、遮罩与弹出层,结合两阶段图层形变和收起动画实现背景后退的视觉感受,并说明视图添加到 window 的层级关系。
-
iOS开发仿美国国家地理App的一个炫酷的动画
拆解仿国家地理应用的弹出页面动画,逐项处理状态栏隐藏、视图拖动与回弹、导航栏衔接和返回按钮变色,展示多层界面联动效果的实现过程。
-
iOS实现自定义炫酷的弹出视图(popView)
介绍 HWPopTool 自定义弹出视图的接入,通过配置内容视图、背景遮罩和关闭按钮控制展示效果,并说明关闭回调由代理改为 block 后的使用方式。
-
iOS开发之事件传递响应链
从 UIResponder、UIEvent 与 UITouch 说明触摸事件如何交给视图处理,结合多个自定义视图观察响应链和手势的关系,并讨论事件传递机制在界面中的应用。
-
仿window阿里旺旺登陆界面,打印机吐纸动画效果
模仿 Windows 阿里旺旺的打印机吐纸登录动画,通过保持视图横向位置与宽度不变、逐步调整高度实现展开效果,并提供 LBPrinterPaper 示例工程。
-
Github源码推荐:(12.25):手势解锁,个人SDK集成,无限循环图片轮播
选编手势解锁、个人中心与无限图片轮播三个开源项目,列出下载入口和部分集成代码,便于按界面需求了解对应组件及其使用方式。
-
Mac OS开发系列之NSImageView
以 macOS 图片视图为例,展示 NSImageView 的创建、图片赋值及添加到界面的过程,再通过启用图层、设置圆角与边框完成圆形头像样式。
-
Bison教你1分钟集成3D无限翻转的Banner
通过左右滑动手势切换广告图片,并结合转场动画实现三维翻转轮播,介绍组件导入与点击代理。原文同时指出该效果使用私有动画接口,保留为技术实验。
-
iOS9新特性之实现3D Touch就是So easy(更新Swift版)
围绕 iOS 9 的主屏快捷操作,说明在 Info.plist 中配置图标、标题与类型,再由 AppDelegate 分发点击事件,并给出 Objective-C 与 Swift 两种写法。
-
Swift纯代码走进UICollectionView
从数据源和代理配置开始,用 Swift 创建 UICollectionView,逐步实现单元格、网络数据加载与可复用头视图,串起一个纯代码列表界面的完整结构。
-
Swift超炫的个人界面依旧如此简单
展示 Swift 版本个人中心组件的接入方式,说明如何导入 LBSwift_PersonalPage 并通过继承复用界面,配合示例代码理解页面封装与调用关系。
-
iOS开发之1分钟做出超炫的个人界面
介绍 LBPersonalPage_VC 个人中心界面的集成方法,通过导入文件、继承基础控制器并补充配置来复用页面效果,同时提供对应示例供查看具体实现。
-
Swift初探之纯代码写tabBar
用早期 Swift 代码构建仿折800的标签栏,演示创建多个子控制器、配置标题与图标并加入系统 TabBar 的过程,适合对照理解纯代码组织导航结构。
-
iOS开发禁止使用系统自带手势滑动返回功能
针对嵌入游戏左滑时意外露出导航栏和标签栏的问题,展示如何控制导航控制器自带的滑动返回手势,记录局部界面禁用系统交互的代码位置。
-
iOS开发动画之绕View旋转的View
为视图围绕图片中心运动的需求给出实现思路,利用三角函数计算圆周上的位置并更新视图坐标,展示不依赖复杂动画框架的环绕运动代码。
-
iOS开发如何实现长微博的功能
把长文字转为图片来实现长微博展示,代码围绕文本宽度、字号、所需高度与图像绘制展开,适合了解固定宽度下生成长图的早期 UIKit 做法。
-
iOS使用Google地图Api创建的地图显示标注及轨迹回放
记录为 iOS 与 Android 统一地图效果而接入 Google Maps 的过程,给出地图初始化、标注与轨迹线的主要代码,并说明申请地图 API Key 的配置入口。
-
iOS开发类似折800功能中的一个小Demo
以仿折800的滚动交互为例,记录拖动开始时的 contentOffset,并在滚动回调中比较偏移量来判断方向,附示例工程供对照查看界面的联动效果。
-
iOS开发自动计算tabview中label的高度
通过字体、限制宽度与文本测量计算标签所需高度,再在 UITableView 行高回调中增加留白,展示手动处理多行文字与列表单元格高度的代码思路。
这个主题里没有匹配文章
减少关键词再试一次,或到全部开发笔记中查找。