视频添加文字和贴纸需求分析
贴纸除了天气海拔等物理来源之外,需要通过服务下载贴纸资源,外加内置系统表情。
在视频编辑界面添加贴纸层,对贴纸进行拖动、缩放、旋转、删除操作。
在视频编辑界面添加文字层,可以改变文字颜色,拖、缩放、旋转、删除操作。
技术背景
对贴纸和文字进行操作,涉及到iOS
UIGestureRecongizer
手势响应的管理。对文字视图做操作编辑状态下恢复原状,涉及iOS仿射变换知识。
解决方案
在视图对象上添加手势,并且在各个手势selector API里面实现对视图的控制。
一、利用UIGestureRecongizer方法
|
|
|
|
|
|
|
|
二、利用仿射变换实现
1、CGAffineTransformMake //直接创建变换
2、CGAffineTransformMakeScale //创建一个给定比例放缩的变换
CGAffineTransform CGAffineTransformMakeScale (CGFloat sx, CGFloat sy);
可以看到这个参数就少多了,也比较好理解,假设是一个图片视图引用了这个变换,那么图片的宽度就会变为widthsx ,对应高度变为hight sy。
3、CGAffineTransformMakeRotation //创建一个旋转角度的变化
CGAffineTransform CGAffineTransformMakeRotation ( CGFloat angle);
在这里可以看到参数并不是一个角度,但是它是把参数作为一个弧度,然后把弧度再转换为角度来处理,
其结果就可能是将一个图片视图旋转了多少度。
4、CGAffineTransformMakeTranslation //创建一个平移的变化
总结
对于文字进行缩放、旋转、平移操作之外,编辑状态下要还原原始状态,所以需要仿射变换和手势相结合。但也可以完全通过仿射变换实现。