如何理解CGAffineTransform

CGAffineTransform A structure for holding an affine transformation matrix. 以上是它的定义,其实就是一个矩阵的结构体,经常用于动画,形状变换。 包含如下参数: struct CGAffineTransform { CGFloat a; CGFloat b; CGFloat c; CGFloat d; CGFloat tx;...

UITableView实现QQ好友列表实战(动态插入删除Cell)

实现选择 网上大部分的教程,都是基于修改section的hearderView来实现的,但是看QQ的好友列表,style是grouped,显然不是使用section的header来处理。使用section的hearderView来实现的,十分简单,网上也有很多源码和教程,只要刷新一下dataSource然后调用就可以了。不在本次讨论的范围之内。 - (void)reloadSections:(NSIndexSet *)sections 这次我直接使用grouped的cell来做父cell,点击后展开相应的子cell,还有动画特效。(目测QQ好友列表没有使用动画特效,可能是因为好友列表过于大,内存占用问题或者是用户体验问题。) 封装测试数据 使用FMDB(或者CoreData)从objc中国获取主issue作为父级cell,...

如何在Github上给别人的项目贡献代码

以开源库YCXMenu为例。 需求 原开源库的菜单item选中效果是这样的: 我发现这个蓝色的选中颜色并不是很适合我正在做的项目。查看源码,发现没有相关的接口。 在项目主页上看了下,也有人提建议说需要加上这样的功能。 自己动手丰衣足食,let's do it。 Git操作 添加这样的功能并不难,在这里就不做代码分析了。之前没有用过Git的Pull Request功能,虽然有fork过几个项目,也还是没有给别人贡献过代码,上网看了一些简单的教程,其实也不难。 fork一下:首先在项目主页上点击Fork,然后你的github主页上就会多一个项目仓库。 git clone:...

Python科学计算和绘图入门

用到的相关模块 scipy numpy matplotlib mayavi 模块安装 主要就是这四个模块,如果要安装的话,前三个可以直接使用sudo pip install xxx来安装。对于mayavi,安装起来比较复杂,主要是vtk的安装,我安装了几次都没有成功,不管是使用ccmake还是使用independent installer都没法用,在尝试了一个下午之后,发现了python科学计算的神器Canopy。 Canopy是Python科学计算的集成环境,里面集成了你所知道,你所需要的所有python科学计算需要的module,这是他的主页截图。 我在Package Manager中直接搜索下载了mayavi,...

Unity第三人称视角解决方案

镜头跟随 在实现第三人称时,镜头问题困扰了我一整天,参考了官方的脚本 SmoothFollow,虽然能实现镜头跟在人物身后,但是发现几个问题。 脚本实现太繁琐,有几个属性目前根本就用不到。 人物旋转时不能控制摄像机跟着旋转,也就是说,不能让镜头一直跟在人物身后。 脚本代码如下: public class SmoothFollow : MonoBehaviour { // The target we are following [SerializeField] private Transform target;...

Unity自动寻路入门指南

Unity自动寻路指南 主要参考Naviation这个文档。本文不关注自动寻路的原理,如有需要可以在这里查看nav-InnerWorkings 一些名词 Agent:绑定在人物身上的,用于实现自动寻路的,看上去就像一个collision。 NavMesh:Agent可以在NavMesh在行走。 Off-Mesh Link:相当于传送门。 NavMesh Obstacle:障碍物。 创建NavMesh 标记为Navigation Static 所有用于成为NavMesh的网格都必须被指定为Navigation Static。 方法如下,选中GameObject,然后在菜单栏的[Window]...