[스위프트 기초] 3장 이미지 뷰 : 앨범 기본 기능

     

    var imgOn : UIImage?
    
    // ? 는 optional 개념으로, nil(=null)이거나 존재 여부를 알 수 없다는 것을 의미. 
    // swift는 변수에 반드시 nil이 아닌 값을 할당해야 하지만 옵셔널 타입을 사용해서 변수에 값이 없음을 알릴 수 o
    // 할당되면 optional wrapping 이라고 하고, !값을 사용해서 force unwrapping 도 가능..
    
    // : 은 타입 선언, = 는 값 할당

     

    
    import UIKit
    
    class ViewController: UIViewController {
        
        var isZoom = false
        var imgOn: 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:"IMG_2129.jpeg")
            imgOff = UIImage(named:"IMG_3388.jpeg")
            
            imgView.image = imgOn
        }
        @IBAction func btnResizeImg(_ sender: UIButton) {
        }
        @IBAction func switchImgOnOff(_ sender: UISwitch) {
        }
        
    
    }

     

        @IBAction func btnResizeImg(_ sender: UIButton) {
            
            let scale:CGFloat = 2.0
            
            var newWidth:CGFloat, newHeight:CGFloat
        }
        
        //CGFloat:실수형 type
    
    
    import UIKit
    
    class ViewController: UIViewController {
        
        var isZoom = false
        var imgOn: 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:"IMG_2129.jpeg")
            imgOff = UIImage(named:"IMG_3388.jpeg")
            
            imgView.image = imgOn
        }
        @IBAction func btnResizeImg(_ sender: UIButton) {
            
            let scale:CGFloat = 2.0
            
            var newWidth:CGFloat, newHeight:CGFloat
            
            if(isZoom){
                newWidth = imgView.frame.width/scale
                newHeight = imgView.frame.height/scale
                btnResize.setTitle("확대", for: .normal) // btnResize의 텍스트를 확대로 변경
            }
            else{
                newHeight = imgView.frame.height*scale
                newWidth = imgView.frame.width*scale
                btnResize.setTitle("축소", for: .normal)
            }
            imgView.frame.size=CGSize(width: newWidth, height: newHeight)
            isZoom = !isZoom
        }
        @IBAction func switchImgOnOff(_ sender: UISwitch) {
            if(sender.isOn){
                imgView.image =  imgOn
            }
            else{
                imgView.image = imgOff
            }
        }
        
    
    }

     

     

    ===

    // 도전 : 이미지 뷰어 만들기 (다음, 이전 버튼)
    
    import UIKit
    
    class ViewController: UIViewController {
    
        @IBOutlet var imgView: UIImageView!
        @IBOutlet var btnBefore: UIButton!
        @IBOutlet var btnAfter: UIButton!
        
        var numImg = 1
        let maxImg = 3
        
        var img1: UIImage?
        var img2: UIImage?
        var img3: UIImage?
        var img4: UIImage?
    
        
        override func viewDidLoad() {
            super.viewDidLoad()
            
            img1 = UIImage(named: "IMG_2129.jpeg")
            img2 = UIImage(named:"IMG_3315.jpeg")
            img3 = UIImage(named:"IMG_3388.jpeg")
            img4 = UIImage(named:"IMG_3408.jpeg")
            
            imgView.image = img1
            numImg = 1
        }
        
        @IBAction func btnGoback(_ sender: UIButton) {
            if(numImg == 1){
                imgView.image = img4
                numImg = 4
            }
            else{
                if(numImg == 2){
                    imgView.image = img1
                }
                else if(numImg == 3){
                    imgView.image = img2
                }
                else if(numImg == 4){
                    imgView.image = img3
                }
                numImg-=1
            }
        }
        
        @IBAction func btnGoNext(_ sender: UIButton) {
            if(numImg == 4){
                imgView.image = img1
                numImg = 1
            }
            else{
                if(numImg == 3){
                    imgView.image = img4
                }
                else if(numImg == 2){
                    imgView.image = img3
                }
                else if(numImg == 1){
                    imgView.image = img2
                }
                numImg+=1
            }
        }
            
    }

    정상 작동

     

     

    이미지 이름을 숫자로 해서 String() 함수를 사용함ㄴ 더욱 간단함. 

     

    let imgName = String(numIng) + ".png"

    댓글