圖片瀏覽時的拖拽、放大、縮小旋轉手勢詳解

Pinch 捏合手勢控制放大縮小倍率和速率

- (void)pinchImage:(UIGestureRecognizer*)sender {
    
    CGAffineTransform tranform = sender.view.transform;
    CGFloat scale = 1.0 - (lastScale - [(UIPinchGestureRecognizer*)sender scale]) * 0.5;
    
    //當手指離開屏幕時,將lastscale設置為1.0
    if (sender.state == UIGestureRecognizerStateEnded) {
        
        //如果視圖寬度小于屏幕尺寸則恢復原始transform
        if (sender.view.frame.size.width <= SCREEN_WIDTH) {
            sender.view.transform = sourceTransform;
        }
        
        lastScale = 1.0;
        return;
    }
    
    if (sender.state == UIGestureRecognizerStateChanged) {
        //最大放大2倍,細小縮放一倍
        NSInteger maxSale = 4;
        if (sender.view.frame.size.width >= SCREEN_WIDTH * maxSale) {
            sender.view.transform = CGAffineTransformScale(sourceTransform, maxSale, maxSale);
            return;
        }else if (sender.view.frame.size.width <= SCREEN_WIDTH * 0.5) {
            sender.view.transform = CGAffineTransformScale(sourceTransform, 0.5, 0.5);
            return;
        }
    }
    
    sender.view.transform = CGAffineTransformScale(tranform,scale, scale);
    lastScale = [(UIPinchGestureRecognizer*)sender scale];
}
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

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

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