iOS 에서 PickerView 를 사용해서, 


시간을 선택하는 방법을 추가해보도록 하자


최종화면은 다음과 같이 피커뷰에서 3개의 항목으로 구성이 되어


각 항목이 시. 분. 초 를 선택할 수 있도록 하는 것이다


iOS 에서 PickerView 를 사용하기 위한,


준비단계는 다음 링크를 통해서 확인 가능하다



GO TO ==>>  준비단계




추가하려는 시간을 선택하는 기능은


PickerView 를 추가할 때에 사용되는


UIPickerViewDelegateUIPickerViewDataSource


를 사용하면 된다




헤더파일에 시.분.초를 담기위한 NSArray 를 3개 선언한다



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

#import <UIKit/UIKit.h>


@interface TimerSetupViewController : UIViewController <UIPickerViewDelegate, UIPickerViewDataSource>

{

    

}


@property (strong, nonatomic) NSArray *hours;

@property (strong, nonatomic) NSArray *minutes;

@property (strong, nonatomic) NSArray *seconds;

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




메인파일에는 다음과 같은 준비들도 필요하다



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


@synthesize hours;

@synthesize minutes;

@synthesize seconds;




- (void)viewDidLoad {

    

    

    // 이런 하드코딩보다는 for문을 써서 넣을 있는 방법이 있을것이다

    hours   = @[@"0",@"1",@"2",@"3"];

    minutes = @[@"0",@"1",@"2",@"3",@"4",@"5",@"6"];

    seconds = @[@"0",@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9",@"10"];

    

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




간단하게 하드코딩으로, 


각 Array 에 들어갈 값들을 넣는다



그리고 다음 3개의 함수에


원하는 형태의 내용을 추가하면 된다




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


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

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

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView

{

    return 3;

}


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

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

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

{

    if(component == 0){

        

        return hours.count;

    }else if(component == 1){

        

        return minutes.count;

    }else if(component == 2){

        

        return seconds.count;

    }

    

    return 0;


}


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

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

{

    if(component == 0){

        

        return hours[row];

    }else if(component == 1){

        

        return minutes[row];

    }else if(component == 2){

        

        return seconds[row];

    }

    

    return @"abc";

}


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



모든 코딩을 완료하면, 


다음과 같은, 원하는 형태의 PickerView를 볼 수 있다

Posted by 스타켄지니어
,