아요 개발 일기

[iOS] PickerView로 원하는 이미지 출력해보자! (+ 원하는 구구단) 본문

iOS/뚝딱뚝딱 🛠️

[iOS] PickerView로 원하는 이미지 출력해보자! (+ 원하는 구구단)

소진이 2023. 1. 6. 17:31

안녕하세요!

오늘은 Picker View를 사용해서 원하는 이미지를 출력해보는걸 해보겠습니다!!

(지극히 개인적으로 새롭게 접했던? 중요하다고 생각했던? 부분만 글을 쓰려고하니 참고만해주세용)

 

일단, PickerView를 사용할때는 extension을 빼놓을 수 없다고 해요!!!!

extension은 가볍게 이야기하면 확장하는 키워드 입니다 ㅎㅎ

익스텐션에 대해서 잘 모르거나 더 자세히 알고싶은 분은 Extension - 익스텐션 을 참고해주세요:D

 

 

(오늘의 TMI)
요즘 내일 배움 카드로 학원 다니구 있어요 ㅎㅎㅎㅎㅎ 
확실히 비대면으로 강의 듣는것보다 대면이 좀 더 집중도 잘되고 바로 질문 할 수 있어서 좋더라구요 ㅎㅎ헤헤

 


Picker View가 뭐에요??

그냥 해석해보면 선택하는 보기? 이런느낌인데, 아래와 같이 작동하는 친구입니다!!

 

기본적으로 PickerView에는 Column과 Row가 있습니다!

 

Column(열) 수를 늘리면 아래처럼 됩니당ㅎㅎ Row를 감싸고 있는 큰 덩어리?라고 생각하면 쉽겠죠?!

 

 

Row(행) 부분은 세부적으로 출력할종류?들에대해서 나와요!

 

쉽게 예를 들면 가족이라는 Column(열)은 엄마, 아빠, 언니, 동생이라는 Row(행)을 가지고있다라고 생각할 수도 있을 것 같아요!

대충 PickerView가 어떻게 생겼고 구성되어있는지 알았으니, 이제 코드로 직접 사용해볼까요?!ㅎㅎㅎ

 


코드와 함께 사용해보자

아래 코드는 PickerView에서 Column과 Row 출력하는 부분입니다

PickerView를 사용할때는 없어서는 안되는 부분인 것 같아요!!!!

 

 

1. Column과 Row를 지정해주자!

맨 상단 코드를 풀어보면 UIPickerViewDataSource 프로토콜을 받아와 ViewController을 확장(extension) 한다는 코드에요!

즉, ViewController에서 UIPickerViewDataSource에 있는 기능을 받아와 확장하겠다는 뜻입니다!

이제 UIPickerViewDataSource에 있는 함수를 불러와 Column과 Row 수를 지정해보겠습니다.

 

 

numberOfComponents 함수는 Cloumn의 수를 지정할 수 있어요!

return 값을 몇으로 주냐에따라 Cloumn의 수가 달라집니다:D

 

PickerView 함수는 Row 부분인데 출력할 갯수를 지정해줄 수 있습니다!!

저는 이미지들을 imageFileName에 모아놨어요!! 그 파일 갯수만큼만 출력하면되므로 count를 사용하면 되겠죠?

 


2. Row title을 바꿔보자!

이제 PickerView의 Row 부분 레이블에 나오게 하고 싶은 텍스트를 출력하도록 지정해줄꺼에요!

지정해주려면 UIPickerViewDelegate 프로토콜의 기능을 받아 확장해줘야해요!!

 

확장한 후, titleForRow를 치면 자동완성으로 함수들이 만들어져요!!! (자동 완성 최고) 

아까와 같이 출력하고 싶은 return 값만 지정해주면 됩니당!!

 

아! 이미지로도 Row 명을 만들 수 있어요!! (위에 Colum 예시 사진처럼요!)

이미지를 출력하고 싶을때는 titleForRow가 아니라 viewForRow를 데려와야해요

추가로 fram 설정을 해주고 return 값을 지정해주면 됩니다!!!

 

어렵지 않죠?!ㅎㅎ 아래 영상은 완성 본입니다!!

 

 

 


 + 원하는 구구단 출력하기

이건 곱셈해주는 함수만 추가해주면 위와 코드가 거의 똑같아요!!

 


마치며

extension에 대해서 이론 공부를 했을때는 솔직히 막 확 와닿지는 않았어요..!

문법 공부를 이론으로 접할때는 지루하고 힘든 싸움이었는데 확실히 코드로 사용해보니까 이해도가 높아지더라구요 ㅎㅎ

아주 간단한 예제였지만, 저한테는 아주 뜻깊은 시간이었습니다.ㅎㅎㅎ😆

제가 앱에서 접했었던 Picker View들은 거의 알람? 스케줄 날짜 지정?이었던 것 같아요!

그래서 다음에는 알람을 만들어보려고 합니당..!!!!!

성실하게해서 더 많고 다양한 Protocol을 사용해보고 싶어요!!! 척척박사같은 개발자가 될때까지,,!! 화잉팅 👊