본문 바로가기
iOS/iOS

UIPickerView

by 패쓰킴 2022. 11. 2.
728x90

pickerview 항목 2개 이상 만들기

NSMutableArray * yearArr;
NSMutableArray * monthArr;

// 열 개수
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView {
    return 2;
}

// 열 데이터 갯수
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component {
    if (component == 0) {
        return [yearArr count];
    } else {
        return [monthArr count];
    }
}

// 행 높이
- (CGFloat)pickerView:(UIPickerView *)pickerView rowHeightForComponent:(NSInteger)component {
    return 40;
}

// 열 데이터 세팅
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {
    if (component == 0) {
        NSString * year = [yearArr objectAtIndex:row];
        return [NSString stringWithFormat:@"%@년",year];
    } else {
        NSString * month = [monthArr objectAtIndex:row];
        return [NSString stringWithFormat:@"%@월",month];
    }
}

// 열 데이터를 더 세세하게 세팅 하고 싶을 때
- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view {
    UILabel * dateLB = [UILabel new];
    [dateLB setFont:[UIFont fontWithName:@"Pretendard-Regular" size:18]];
    [dateLB setTextColor:UIColor.blackColor];
    [dateLB setTextAlignment:NSTextAlignmentCenter];
    if (component == 0) {
        NSString * year = [yearArr objectAtIndex:row];
        [dateLB setText:[NSString stringWithFormat:@"%@년",year]];
    } else {
        NSString * month = [monthArr objectAtIndex:row];
        [dateLB setText:[NSString stringWithFormat:@"%@월",month]];
    }
    return dateLB;
}

// 선택한 값 확인
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {
    if (component == 0) {
        [yearArr objectAtIndex:row];
    } else {
        [monthArr objectAtIndex:row];
    }
}

 

728x90

'iOS > iOS' 카테고리의 다른 글

UICollectionView  (0) 2022.11.04
DateFormatter  (0) 2022.11.03
navigation stack에서 특정 VC 삭제  (0) 2022.11.02
UIScrollView  (0) 2022.11.01
UISegmentedControl  (0) 2022.10.19

댓글