//
// ViewController.swift
// TabMission
//
// Created by seohuibaek on 2022/10/14.
//
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
@IBAction func btnMoveImageView(_ sender: UIButton) {
tabBarController?.selectedIndex = 1
}
@IBAction func btnMoveDatePickerView(_ sender: UIButton) {
tabBarController?.selectedIndex = 2
}
@IBAction func btnMovePickerView(_ sender: UIButton) {
tabBarController?.selectedIndex = 3
}
}
//
// ImageViewController.swift
// Created by seohuibaek on 2022/08/31.
//
import UIKit
class ImageViewController: UIViewController {
var isZoom = false
var imgOn: UIImage?
var imgOff: UIImage?
@IBOutlet var imgView: UIImageView!
@IBOutlet var bntResize: 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
newHeight = imgView.frame.height/scale
bntResize.setTitle("확대", for: .normal)
}
else {
newWidth = imgView.frame.width*scale
newHeight = imgView.frame.height*scale
bntResize.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
}
}
}
//
// DateViewController.swift
// DatePicker
//
// Created by seohuibaek on 2022/09/01.
//
import UIKit
class DateViewController:UIViewController {
let timeSelector: Selector = #selector(DateViewController.updateTime)
let interval = 1.0
var count = 0
@IBOutlet var lblCurrentTime: UILabel!
@IBOutlet var lblPickerTime: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
Timer.scheduledTimer(timeInterval: interval, target: self, selector: timeSelector, userInfo: nil, repeats: true)
}
@IBAction func changeDatePicker(_ sender: UIDatePicker) {
let datePickerView = sender
let formatter = DateFormatter()
formatter.dateFormat = "yyyy-MM-dd HH:mm EEE"
lblPickerTime.text = "선택 시간: " + formatter.string(from: datePickerView.date)
}
@objc func updateTime() {
//lblCurrentTime.text = String(count)
//count+=1
let date = NSDate()
let formatter = DateFormatter()
formatter.dateFormat = "yyyy-MM-dd HH:mm:ss EEE"
lblCurrentTime.text = "현재 시각: " + formatter.string(from: date as Date)
}
}
//
// PickerViewController.swift
// PickerView
//
// Created by seohuibaek on 2022/09/01.
//
import UIKit
class PickerViewController: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource {
let MAX_ARRAY_NUM = 10
let PICKER_VIEW_COLUMN = 2
let PICKER_VIEW_HEIGHT:CGFloat = 80
var imageArray = [UIImage?]()
var imageFileName = [ "1.jpg", "2.jpg", "3.jpg", "4.jpg", "5.jpg", "6.jpg", "7.jpg", "8.jpg", "9.jpg", "10.jpg"]
@IBOutlet var pickerImage: UIPickerView!
@IBOutlet var lblImageFileName: UILabel!
@IBOutlet var imageView: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
for i in 0 ..< MAX_ARRAY_NUM {
let image = UIImage(named: imageFileName[i])
imageArray.append(image)
}
lblImageFileName.text = imageFileName[0]
imageView.image = imageArray[0]
}
func numberOfComponents(in pickerView: UIPickerView) -> Int {
return PICKER_VIEW_COLUMN
}
func pickerView(_ pickerView: UIPickerView, rowHeightForComponent component: Int) -> CGFloat{
return PICKER_VIEW_HEIGHT
}
func pickerView(_ pickerView: UIPickerView!, numberOfRowsInComponent component: Int) -> Int {
return imageFileName.count
}
/*func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
return imageFileName[row]
}*/
func pickerView(_ pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusing view: UIView?) -> UIView {
let imageView = UIImageView(image: imageArray[row])
imageView.frame = CGRect(x: 0, y: 0, width: 100, height: 150)
return imageView
}
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
lblImageFileName.text = imageFileName[row]
imageView.image = imageArray[row]
}
}
1) 기존에 만든 실습들을 Tab bar controller를 통해 연결한 후 탭 하면 화면 전환 되는 방식으로 적용
2) 실습이랑 미션이랑 난이도 차이가 없어서 무난하게 해결