준코딩

[ios/Swift] pinchGesture 사용하기 (이미지 확대/축소 하기) 본문

프로그래밍/IOS (Swift)

[ios/Swift] pinchGesture 사용하기 (이미지 확대/축소 하기)

Ljunhyeob - App Dev 2023. 1. 12. 16:22

https://github.com/Ljunhyeob/pinchGesture

 

GitHub - Ljunhyeob/pinchGesture: Swift 이미지 확대

Swift 이미지 확대. Contribute to Ljunhyeob/pinchGesture development by creating an account on GitHub.

github.com

1. 이미지뷰 하나 생성합니다.

2. 방금 생성한 imageView에 오토레이아웃 잡아주시고 (원하는 크기에 맞춰서) 우측 인스펙터 영역에서 Content Mode 를 Aspect Fit으로 해주세요. 

 

3. 그리고 원하는 이미지로 변경해주시고요, (저는 따로 이미지를 다운받지 않아서 그냥 기본 이미지 아무거나 넣었습니다)

 

4.그리고 이미지랑 viewController 랑 이어주시고 

 

5. viewDidLoad() 안에 아래와 같이 코딩해줍니다 

(에러나는건 현재 doPinch 함수를 생성하지 않아서 에러나는겁니다. 아래에서 생성 할겁니다)

 

//
//  ViewController.swift
//  pinchGestureApp
//
//  Created by 이준협 on 2023/01/12.
//

import UIKit

class ViewController: UIViewController {
    
    @IBOutlet weak var image: UIImageView!
    
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        
        let pinch = UIPinchGestureRecognizer(target: self, action: #selector(ViewController.doPinch(_ :)))
        self.view.addGestureRecognizer(pinch)
        
    }

}

 

6. doPinch함수를 생성해줍니다.

//
//  ViewController.swift
//  pinchGestureApp
//
//  Created by 이준협 on 2023/01/12.
//

import UIKit

class ViewController: UIViewController {
    
    @IBOutlet weak var image: UIImageView!
    
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        
        let pinch = UIPinchGestureRecognizer(target: self, action: #selector(ViewController.doPinch(_ :)))
        self.view.addGestureRecognizer(pinch)
        
    }
    
    @objc func doPinch(_ pinch: UIPinchGestureRecognizer){
        image.transform = image.transform.scaledBy(x: pinch.scale, y: pinch.scale)
        pinch.scale = 1
    }

}

7. 엥 근데 이런 에러가 뜨네요. 버전 어쩌구 저쩌구............. (시뮬레이터에서 하시는 분들은 안뜰껍니다.)

8. 아래 16.2 로 되어있는버전을 16으로 변경해주겠습니다. 

9. 그러면 정상적으로 작동합니다 끝~

Comments