iOS 에서 PickerView 를 등록해서 사용할 수 있는데,


그 방법을 알아보자



다음과 같은 뷰를 최종적으로 만들 것인데,


상단에 보이는 것은 DatePicker 를 사용하여 만들 수 있고


사용자가 변경할 필요가 없는 구조이다


아래 보이는 것이 PickerView 를 사용하여 만들 수 있는 것으로


사용자가 입맛에 맞게 변경할 수 있는 구조이다





DatePicker 를 사용하는 구조는, 화면 수정하는 곳에서 등록만으로도 사용이 가능하다


하지만, PickerView를 사용하기 위해서는 사전작업이 필요하다


이와 같은 구조를 어떻게 만들 수 있는지 알아보자




TimerSetupViewController


를 만들어 다음과 같이 프로그래밍 하였다





헤더파일에는 다음을 추가할 준비를 해둔다


UIPickerViewDelegate


UIPickerViewDataSource



===================================================================================

TimerSetupViewController.h 파일



#import <UIKit/UIKit.h>


@interface TimerSetupViewController : UIViewController <UIPickerViewDelegate, UIPickerViewDataSource>



@end

===================================================================================





UIPickerViewDataSource


를 사용하기 위해서, 추가적인 메소드들을 다음과 같이 구현해준다


1개의 컴포넌트, 5개의 행, 모든 행의 문자들을 abc


라는 것을 해당 소스가 말해준다



===================================================================================

TimerSetupViewController.m 파일


#import <UIKit/UIKit.h>

#import "TimerSetupViewController.h"



@implementation TimerSetupViewController


// returns the number of 'columns' to display.

// pickerView 사용자에게 표시될 컴포넌트의 번호를 확인한다

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView

{

    return 1;

}


// returns the # of rows in each component..

// 특정한 컨포넌트에서 표시되는 행의 숫자를 pickerView에게 알려준다.

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component

{

    return 5;

}


// 컴포넌트에서 사용할 명칭들

- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component

{

    return @"abc";

}

===================================================================================






다음과 같은 구조로 화면을 그렸고,


각각은 DatePicker 와 PickerView 를 사용하여 그렸다


프로그램 구동을 시켜보면,


DatePicker 는 잘 나오지만, PickerView 는 화면에 표기가 되지 않음을 확인할 수 있다


          




화면에 보여주기 위해서는, 다른 방법이 필요했다



@interface TimerSetupViewController : UIViewController <UIPickerViewDelegate, UIPickerViewDataSource>



다음과 같이 연결되어 있는 delegate 와 dataSource 를 


pickerView 를 선택했을때, connections inspector 에서 Outlets 부분에서 확인가능하다




해당 Outlets 을, File's Owner 와 연결해 주는 작업을 해야 한다








아래와 같이 연결이 된다






이제 프로그램을 작동시켜보면,


다음과 같이 PickerView 가 정상적으로 나옴을 확인할 수 있다




화면에 PickerView 를 달아서 사용할 수 있게 만들었으니,


다음에는 이를 응용하는 방법을 알아봐야 겠다


Posted by 스타켄지니어
,