Post

이미지 뷰어

아울렛 변수외 그냥 변수를 사용 초깃값 지정 버튼 이름 바꾸기와 스위치 상태에 따를 값 변경

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
import UIKit

class ViewController: UIViewController {
    var isZoom = false //전구의 확대 여부를 나타냄
    var imgOn: UIImage? // 이미지 타입은 UIImage
    var imgOff: UIImage? //사진이 없을 수 있으므로 옵셔널로 선언한다

    @IBOutlet var imgView: UIImageView! // 보여주는 이미지
    @IBOutlet var btnResize: UIButton! //버튼 이름 바꾸기위한 아울렛 변수

    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 //아울렛 변수에 초기값을 넣음
    }
    @IBAction func btnResizeImage(_ sender: UIButton) { //버튼의 액션함수
        let scale: CGFloat = 2.0 //확대 축소 배율
        var newWidth: CGFloat, newHeight:CGFloat //가로 세로 길이를 저장할 변수
        
        if (isZoom) { //상태 true 확대된 상태일 때
            newWidth = imgView.frame.width/scale //가로 2 나눔
            newHeight = imgView.frame.height/scale //세로 2 나눔
            
            btnResize.setTitle("확대", for: .normal) //버튼 이름 바꿈
        }
        else { //상태 false인 상태 축소인 상태
            newWidth = imgView.frame.width*scale
            newHeight = imgView.frame.height*scale
            
            btnResize.setTitle("축소", for: .normal)
        }
        imgView.frame.size = CGSize(width: newWidth, height: newHeight)//변경한 값을 이미지에
        isZoom = !isZoom // 값을 반전 시킨다
    }

    @IBAction func switchlmageOnOff(_ sender: UISwitch) {
        if sender.isOn { //스위치가 켜져 있을때 
            imgView.image = imgOn //보여지는 이미지
        }
        else {
            imgView.image = imgOff
        }
    }
    
}

 

위에서 imgOn = UIImage(named: “lamp_on.png”)

​ imgOff = UIImage(named: “lamp_off.png”)

​ imgView.image = imgOn 코드가 들어 있는 viewDidLoad 함수는 내가 만든 뷰룰 실행 했을때 호출되는 함수로 뷰가 불러지고 실행하고자 하는 기능이 있을 때 viewDidLoad함수 안에 입력하면 된다


 

 

이미지 뷰어에는 콘탠트 모드가 옆 사진과 같이 종류가 매우 많다

1.scale to fill

뷰어의 크기에 맞게 사진의 크기가 변경된다 비율이 안맞을 수도 있어서 찌그러져 보일 수 있다

2.aspect fit

가로 세로 비율은 유지하면서 이미지 뷰어에 맞게 조정 된다

3.aspect fll

이미지 비율을 유지하면서 이미지 뷰를 채운다 이미지하고 뷰어하고 비율이 맞지 않으면 이미지가 잘릴 수도 있다

4.center

이미지이 원본 크기를 유지한 채 이미지 중앙부분을 출력

top, top left ···· 나머지 모두 center와 비슷함

This post is licensed under CC BY 4.0 by the author.