美文网首页iOS学习记录
iOS中使图片放缩前后轻拍点的位置不变

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

作者: Jager_桔梗 | 来源:发表于2016-04-07 17:35 被阅读0次

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

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

    相关文章

      网友评论

        本文标题:iOS中使图片放缩前后轻拍点的位置不变

        本文链接:https://www.haomeiwen.com/subject/yypzkttx.html