Study/Swift

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

minulbora 2024. 12. 16. 23:32

 

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"