iOS中使图片放缩前后轻拍点的位置不变

添加轻拍手势实现点击图片能放大缩小,并且点击处在放缩前后位置不变,就好像点哪里就把哪里变大.

要放大scale倍,就先把原来的宽和高都缩小scale倍,再找到新的原点,这样得到的新的缩小后的矩形区域就是要放大的区域. 

为了让点击的点在放缩前后的位置不变,就要让放缩前后该点到原点的距离不变.

以放大3倍为例,红色矩形区域就是要放大的区域,点击处到原点的距离d1应该是到新原点的距离d2的3倍, 这样红色矩形区域放大后点击处到原点的距离才会不变 (d1 = 3 * d2).

如下图

所以新原点的坐标为: x1 = x  - x * (1/3);    y1 =  y - y * (1/3);


[scroll zoomToRect : newRect animated : YES];  这个方法就是把得到的新矩形区域newRect按照scroll的大小(这里设置的是屏幕大小)放大,即将之前按照相应比例找到的小矩形放大到满屏.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容