Do it! 스위프트로 아이폰 앱 만들기
03장 원하는 이미지 화면에 출력하기 - 이미지 뷰
⇨ 확대를 누르면 이미지가 커지고, 축소를 누르면 이미지가 작아진다.
⇨ 스위치를 On 하면 켜진 전구가 나타나고, Off 하면 꺼진 전구가 나타난다.
Library(+) 에서 Image View 를 찾아 스토리보드에 추가하기
Content Mode 는 Aspect Fit 으로 설정하기
💡 Aspect Fit : 이미지 가로, 세로 비율은 유지하면서 이미지 뷰 크기에 맞춰 보여준다.
이미지를 확대 및 축소할 수 있는 Button 추가하고, Title "확대" 로 변경하기
이미지를 변경할 수 있는 Switch 추가하기
Image View, Button 에 대한 아웃렛 변수 추가하기
Button, Switch 에 대한 액션 함수 추가하기
class ViewController: UIViewController {
var isZoom = false
var imgOn: UIImage?
var imgOff: UIImage?
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
imgOn = UIImage(named: "lamp_on")
imgOff = UIImage(named: "lamp_off")
imgView.image = imgOn
}
@IBAction func btnResizeImage(_ 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)
}
else {
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 switchImageOnOff(_ sender: UISwitch) {
if sender.isOn { imgView.image = imgOn }
else { imgView.image = imgOff }
}
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: "lamp_on")
imgOff = UIImage(named: "lamp_off")
imgView.image = imgOn
}
@IBAction func btnResizeImage(_ 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)
}
else {
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 switchImageOnOff(_ sender: UISwitch) {
if sender.isOn { imgView.image = imgOn }
else { imgView.image = imgOff }
}
}