Image View

심주흔·2022년 9월 12일
0


Image View
: 어플리케이션에서 사진을 보여 줘야할 때 사용하는 객체

이미지를 추가했을 때 이미지를 프로젝트 폴더로 복사하지 않고 사용할 경우 원본의 폴더가 변경되거나 삭제되었을 때 더 이상 해당 이미지를 사용 할 수 없게 된다. 그러므로 이미지를 프로젝트 폴더로 복사해서 사용할 것

이미지 뷰에서 이미지를 나타내는 콘텐트 모드(content Mode)에 따라 이미지가 다르게 표시된다.

(1) Scale to Fill - 기본 설정 값으로, 이미지 뷰의 크기에 맞게 이미지의 가로, 세로 비율이 변경 된다. 비율이 맞지 않으면 뭉개져 보임.

(2) Aspect Fit - 이미지의 가로, 세로 비율은 유지하면서 이미지 뷰의 ㅡ기에 맞게 이미지 크기를 바꾼다.

(3) Aspect Fill - 이미지의 비율을 유지하멵서 이미지 뷰를 채움. 이미지 뷰와 이미지 비율이 맞지 않으면 이미지가 넘쳐서 잘릴 수 있다.

(4) Center - 이미지의 원본 크기를 유지한 채 이미지의 중앙을 이미지 뷰에 출력

(5) Top - 이미지의 원본 크기를 유지한 채 이미지의 윗부분을 이미지 뷰에 출력

(6) Top Left - 이미지의 원본 크기를 유지한 채 이미지의 왼쪽 윗 부분을 이미지 뷰에 출력

var isZoom = false                          //이미지 확대 여부를 나타내는 bool 타입의 변수
    var imgOn : UIImage?                        //켜진 전구 이미지를 가지고 잇는 UIImage 타입의 변수
    var imgOff : UIImage?                       //꺼진 전구 이미지를 가지고 잇는 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: "lampOn.jpeg")           //imgOn에 "lampOn.jpeg"이미지를 할당
        imgOff = UIImage(named: "lampOff.jpeg")         //imgOn에 "lampOff.jpeg"이미지를 할당

        imgView.image = imgOn                           //위에서 할당한 imgOn 이미지를 imgView에 할당
    }
 //확대, 축소 버튼에 대한 액션 함수
    @IBAction func btnResizeImage(_ sender: UIButton) {
        let scale:CGFloat = 2.0                         //확대할 배율 값
        var newWidth:CGFloat, newHeight:CGFloat         //확대할 크기의 계산의 계산 값을 보관할 변수
        
        if(isZoom){     //true 현재 확대된 그림일 경우(즉, 타이틀은 축소)
            newWidth = imgView.frame.width/scale    //이미지 뷰의 프레임 너빗값을 scale로 나눔
            newHeight = imgView.frame.height/scale  //이미지 뷰의 프레임 높잇값을 scale로 나눔
            btnResize.setTitle("확대", for: .normal)  //버튼의 타이틀을 "확대"로 변경
        }
        else{           //false 현재 축소된 그림일 경우(즉, 타이틀은 확대)
            newWidth = imgView.frame.width*scale        //이미지 뷰의 프레임 너빗값을 scale로 곱함.
            newHeight = imgView.frame.height*scale      //이미지 뷰의 프레임 높잇값을 scale로 곱함.
            btnResize.setTitle("축소", for: .normal)      //버튼의 타이틀을 "축소"로 변경
        }
        
        //이미지 뷰의 프레임 크기를 수정된 너비와 높이로 변경
        imgView.frame.size = CGSize(width: newWidth, height: newHeight)
        isZoom = !isZoom                            //isZoom 변수의 상태를 !연산자를 사용하여 반전
    }
//ON/OFF 스위치에 대한 액션 함수
    @IBAction func switchImageOnOff(_ sender: UISwitch) {
        if sender.isOn{                     //만일 스위치가 On이면
            imgView.image = imgOn           //이미지 뷰의 이미지에 imgOn 이미지를 할당
        }
        else{                               //만일 스위치가 OFF이면
            imgView.image = imgOff          //이미지 뷰의 이미지에 imgOff 이미지를 할당
        }
    }
profile
이봐... 해보기는 했어?

0개의 댓글