添加輕拍手勢實現(xiàn)點擊圖片能放大縮小,并且點擊處在放縮前后位置不變,就好像點哪里就把哪里變大.

要放大scale倍,就先把原來的寬和高都縮小scale倍,再找到新的原點,這樣得到的新的縮小后的矩形區(qū)域就是要放大的區(qū)域.?
為了讓點擊的點在放縮前后的位置不變,就要讓放縮前后該點到原點的距離不變.


以放大3倍為例,紅色矩形區(qū)域就是要放大的區(qū)域,點擊處到原點的距離d1應(yīng)該是到新原點的距離d2的3倍, 這樣紅色矩形區(qū)域放大后點擊處到原點的距離才會不變 (d1 = 3 * d2).
如下圖


所以新原點的坐標(biāo)為: x1 = x ?- x * (1/3); ? ?y1 = ?y - y * (1/3);

[scroll zoomToRect : newRect animated : YES]; ?這個方法就是把得到的新矩形區(qū)域newRect按照scroll的大小(這里設(shè)置的是屏幕大小)放大,即將之前按照相應(yīng)比例找到的小矩形放大到滿屏.