๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐ŸŽ iOS

Picker View

by hyebin (Helia) 2022. 12. 8.
๋ฐ˜์‘ํ˜•

ํ”ผ์ปค ๋ทฐ (Picker View)

  • ์•„์ดํฐ์—์„œ ์›ํ•˜๋Š” ํ•ญ๋ชฉ์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๊ฐ์ฒด
  • ๋ฐ์ดํŠธ ํ”ผ์ปค- ๋‚ ์งœ์™€ ์‹œ๊ฐ„, ํ”ผ์ปค ๋ทฐ - ๋ฌธ์ž์—ด ์„ ํƒ

1. Picker View ๊ฐ์ฒด ์ถ”๊ฐ€

Library์—์„œ Picker View๋ฅผ ์ฐพ์•„  ์Šคํ† ๋ฆฌ ๋ณด๋“œ์— ์ถ”๊ฐ€

 

2. ์•„์›ƒ๋ › ๋ณ€์ˆ˜ ์ถ”๊ฐ€

PickerView์— ๋Œ€ํ•œ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์•„์›ƒ๋ › ๋ณ€์ˆ˜ ์ถ”๊ฐ€

 

3. ๋ธ๋ฆฌ๊ฒŒ์ดํŠธ ์„ค์ •

PickerView ์ƒํ˜ธ์ž‘์šฉ์„ ์œ„ํ•ด ๋ธ๋ฆฌ๊ฒŒ์ดํŠธ ์„ค์ •

PickerView๋ฅผ ์˜ค๋ฅธ์ชฝ ๋งˆ์šฐ์Šค๋กœ ์„ ํƒํ•œ ํ›„ ์ƒ๋‹จ์— ์žˆ๋Š” "ViewController" ์•„์ด์ฝ˜ ์œ„๋กœ ๋Œ์–ด๋‹ค ๋†“์œผ๋ฉด delegte ์„ ํƒ ๊ฐ€๋Šฅ

  • delegate: ๋‹ค๋ฅธ ๋ˆ„๊ตฐ๊ฐ€ ํ•ด์•ผ ํ•˜๋Š” ์ผ์„ ๋Œ€์‹ ํ•ด์ฃผ๋Š” ๋Œ€๋ฆฌ์ž ์—ญํ• 
  • ํŠน์ • ๊ฐ์ฒด์™€ ์ƒํ˜ธ์ž‘์šฉํ•  ๋•Œ ๋ฉ”์‹œ์ง€๋ฅผ ๋„˜๊ธฐ๋ฉด ๊ทธ ๋ฉ”์‹œ์ง€์— ๋Œ€ํ•œ ์ฑ…์ž„์€ delegate๋กœ ์œ„์ž„
  • delegate ๋ฉ”์„œ๋“œ๋Š” ํ•ด๋‹น ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•˜๋ฉฐ ์ฒ˜๋ฆฌ ๊ฒฐ๊ณผ๋‚˜ ๋ฉ”์‹œ์ง€ ๋“ฑ์„ ๋ฐ›์Œ

 

4. ํด๋ž˜์Šค ์ƒ์†

PickerView์˜ delegate ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด "UIPickerViewDelegate"์™€ "UIPickerViewDataSource" ํด๋ž˜์Šค๋ฅผ ์ƒ์† ๋ฐ›์Œ

ํ•„์ˆ˜๋กœ ์„ ์–ธ๋˜์–ด์•ผ ํ•˜๋Š” ๋ฉ”์„œ๋“œ ์„ ์–ธ

 

5. delegate ๋ฉ”์„œ๋“œ, ๋ณ€์ˆ˜ ์„ ์–ธ

PickerView์˜ ๋ชฉ๋ก์„ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•œ color ๋ฐฐ์—ด ์ƒ์„ฑ

PickerView์˜ ์„ ํƒ์„ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•ด resultLable ์ƒ์„ฑ

  • numberOfRowsInComponent: PickerView์˜ ๋ชฉ๋ก์˜ ๊ฐœ์ˆ˜
  • numberOfComponents: PickerView์˜ ์—ด์˜ ๊ฐœ์ˆ˜
  • titleForRow: PickerView ๋ชฉ๋ก์˜ titile
  • didSelectRow: PickerView์—์„œ ์„ ํƒ๋˜์—ˆ์„ ๋•Œ ๋™์ž‘ํ•  ๊ตฌ๋ฌธ ์ž‘์„ฑ

6. ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ ํ™•์ธ

 

 

+ PickerView ๋ชฉ๋ก์— ์ด๋ฏธ์ง€ ์ถœ๋ ฅํ•˜๊ธฐ

func pickerView(_ pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusing view: UIView?) -> UIView {
    //๋ชฉ๋ก์— ํ‘œ์‹œํ•  ์ด๋ฏธ์ง€ ์ถ”๊ฐ€
    let image = UIImageView(image: UIImage()) 
    
    //imageView frame ํฌ๊ธฐ ์„ค์ •
    image.frame = CGRect(x: 0, y: 0, width: 200, height: 200)
	
    return image
}

 

+ PickerView ๋†’์ด ๋ณ€๊ฒฝํ•˜๊ธฐ

func pickerView(_ pickerView: UIPickerView, rowHeightForComponent component: Int) -> CGFloat {
    //๋†’์ด๋ฅผ ์ •์ˆ˜ ๊ฐ’์œผ๋กœ ์„ค์ •
    return 10
}
๋ฐ˜์‘ํ˜•

'๐ŸŽ iOS' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

WebView  (0) 2022.12.08
Alert  (0) 2022.12.08
Date Picker  (1) 2022.10.05
UIImageView  (0) 2022.09.28
Outlet ๋ณ€์ˆ˜์™€ Action ํ•จ์ˆ˜  (0) 2022.09.27