이미지 뷰 앱의 기능 구현하기

Posted on 2021-09-02 by GKSRUDTN99
Swift&Xcode Xcode ImageView

소스 파일 열고 코딩하기

1. ViewController.swift 파일 열기
2. 변수 추가하기
  • 코딩에 필요한 변수들을 클래스 선언문 바로 아래에 추가한다.
// 확대 여부를 나타내는 변수
var isZoom = false

// 켜진 전구 이미지가 있는 UIImage 타입의 변수
var imgOn: UIImage?

// 꺼진 전구 이미지가 있는 UIImage 타입의 변수
var imgOff: UIImage?
3. 이미지 지정 후 보여주기
  • viewDidLoad 함수 내 UIImage 타입의 변수에 이미지를 지정하기 위한 코드를 추가한다.
override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.

        imgOn = UIImage(named: "lamp_on.png")
        imgOff = UIImage(named: "lamp_off.png")

        imgView.image = imgOn
    }
}
4. 버튼 클릭 시 동작하는 함수 코딩
  • btnResizeImage 함수를 코딩한다.
  • scale 상수는 이미지를 확대할 때 확대할 배율값을 의미한다.
  • newWidth, new Height 변수는 확대 또는 축소하였을 때, 이미지의 가로, 세로 길이를 저장할 변수이다.
@IBAction func btnResizeImage(_ sender: UIButton) {
        let scale:CGFloat = 2.0
        let newWidth:CGFloat, newHeight:CGFloat
    }
5. isZoom 변수의 상태에 따라 이미지 프레임의 크기를 확대 또는 축소하고 버튼의 텍스트를 변경하는 코드를 작성한다.
@IBAction func btnResizeImage(_ sender: UIButton) {
        let scale:CGFloat = 2.0
        let newWidth:CGFloat, newHeight:CGFloat

        if (isZoom) {
            newWidth = imgView.frame.width / scale
            newHeight = imgView.frame.height / scale
            btnResize.setTitle("확대", for: .normal)
        }
        else {
            newWidth = imgView.frame.width * scale
            newHeight = imgView.frame.width * scale
            btnResize.setTitle("축소", for: .normal)
        }
        // 이미지의 사이즈를 변경한다.
        imgView.frame.size = CGSize(width: newWidth, height: newHeight)
        isZoom = !isZoom
    }
6. 스위치 클릭 시 동작하는 함수 코딩
  • 스위치 상태를 확인하고 스위치 상태에 따라 이미지 뷰에 나타낼 이미지를 선택한다.
@IBAction func switchImageOnOff(_ sender: UISwitch) {
        if sender.isOn{
            imgView.image = imgOn
        }
        else{
            imgView.image = imgOff
        }
    }

viewDidLoad 함수란?

viewDidLoad 함수는 내가 만든 뷰를 불러왔을 때 호출 되는 함수이다. 뷰가 불려진 후 실행하고자 하는 기능이 필요할 때 이 viewDidLoad 함수 안에 코드를 입력하면 된다.