이미지 뷰 앱의 기능 구현하기
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 함수 안에 코드를 입력하면 된다.