//
// ViewController.swift
// PickerView
//
// Created by 맥 on 2022. 4. 4..
// Copyright © 2022년 맥. All rights reserved.
//
import UIKit
class ViewController: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource {
let maxNUM = 3
let pickerCoulmn = 2
let pickerViewHeight:CGFloat = 80
var imgArray = [UIImage?]()
var imgArray2 = [UIImage?]()
var imgFileName1 = [ "top1.png", "top2.png", "top3.png" ]
var imgFileName2 = [ "pants1.png", "pants2.png", "pants3.png" ]
@IBOutlet var pickerView: UIPickerView!
@IBOutlet var imgView: UIImageView!
@IBOutlet var imgView2: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
for i in 0 ..< maxNUM {
let img = UIImage(named: imgFileName1[i])
imgArray.append(img)
}
imgView.image = imgArray[0]
for i in 0 ..< maxNUM {
let img2 = UIImage(named: imgFileName2[i])
imgArray2.append(img2)
}
imgView2.image = imgArray2[0]
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func numberOfComponents(in pickerView: UIPickerView) -> Int {
return pickerCoulmn
}
func pickerView(_ pickerView: UIPickerView, rowHeightForComponent component: Int) -> CGFloat {
return pickerViewHeight
}
// return can select pickerView`s row
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
if component == 0 { return imgFileName1.count }
else { return imgFileName2.count }
}
func pickerView(_ pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusing view: UIView?) -> UIView {
if component == 0 {
let imgView = UIImageView(image: imgArray[row])
imgView.frame = CGRect(x: 0, y: 0, width: 100, height: 200)
return imgView
}
else {
let imgView2 = UIImageView(image: imgArray2[row])
imgView2.frame = CGRect(x: 0, y: 0, width: 100, height: 200)
return imgView2
}
}
// return show img in imgView
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
if component == 0 { imgView.image = imgArray[row] }
else { imgView2.image = imgArray2[row] }
}
}
let pickerCoulmn = 2
pickerView의 최대 열을 설정한다.
pickerView를 하나만 넣어도 pickerCoulmn 값을 설정해서 조절할 수 있다.
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
if component == 0 { return imgFileName1.count }
else { return imgFileName2.count }
}
pickerView~와 같은 func(함수)들은 이름을 바꿀 수 없다. 그렇다고 두 개 이상을 작성할 수도 없다.
pickerColumn으로 picker를 두 개 설정해서 각각 받아들여야 하는데 그럴 때는 어떡할까?
component를 이용한다. 첫 번째 component는 0, 두 번째는 1, ... 이런 식의 값을 가져 IF 문을 활용하면 된다.
'학교 공부 > iOS 프로그래밍' 카테고리의 다른 글
실습 4-8 (교재 P.124) (0) | 2022.04.04 |
---|---|
실습 3-6 (교재 P.100) (0) | 2022.04.04 |
실습 2-7 (교재 P.61) _____ 교재: 스위프트로 아이폰 앱 만들기 6판 (0) | 2022.04.04 |
개념 및 용어 정리 글 (0) | 2022.04.04 |
iOS 프로그래밍 개요 (0) | 2022.03.14 |