iOS学习记录

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

2016-04-07  本文已影响0人  Jager_桔梗

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

要放大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的大小(这里设置的是屏幕大小)放大,即将之前按照相应比例找到的小矩形放大到满屏.

上一篇下一篇

猜你喜欢

热点阅读