尝试用STAR法则写一篇小白Demo,关于自定义图片切割功能
固定裁切框大小,图片可拖动缩放,精准裁切.
STAR法则是情境(situation)、任务(task)、行动(action)、结果(result)
情境(situation)
需要一个裁切固定尺寸图片的功能,类似这样
任务(task)
封装一个View,需要以下功能
可以接受选择的图片显示
图片编辑完成后给出图片的裁切范围
图片可以放大,缩小,拖动,且活动范围在给定的裁切框范围内
行动(action)
从任务预期来看
首先需要给出一个参数 image 用来接收外界传过来的参数
在image做完交互后传出对应到原始image 的Frame,切割用
因为图片需要有放大缩小拖动的交互,所以自然想到可以把图片放到 UIScrollView 容器内,为了方便说明,整个裁切的结构层级如下
- 1 是用UIScrollView做容器
- 2 是添加一个UIImageView用来展示图片
- 3 是一个UIView,作为一个遮罩
- 4 是一个自定义的UIView,裁切框,这个Frame很关键
- 比较关键的一些点
|
|
|
|
|
|
|
|
- 获取到交互后的图片 对应到 原始图片坐标点和大小
|
|
结果(result)
- 使用
|
|
在裁切页面隐藏了导航栏和状态栏,如果图片拖动与裁切框有偏移,看看Info.plist 中 , 设置 View controller-based status bar appearance 为NO,该参数决定我们项目状态栏的显隐藏是否以各控制器的设置为准。