iOS中使圖片放縮前后輕拍點的位置不變

添加輕拍手勢實現(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)比例找到的小矩形放大到滿屏.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容