iOS 애플 리 케 이 션 개발 에서 UIPickerView 스크롤 선택 표시 줄 의 사용법 을 인 스 턴 스 로 설명 합 니 다.

5888 단어 iOSUIPickerView
기초
1.UIPickerView 속성
데이터 원본(UIPickerView 에 몇 줄 이 있 는 지 알려 주 는 데 사용)

@property(nonatomic,assign) id dataSource;
   
프 록 시(UIPickerView 의 1 열 마다 어떤 내용 을 표시 하 는 지 알려 주 고 UIPickerView 의 선택 을 감청 합 니 다)

@property(nonatomic,assign) id   delegate;
   
선택 한 표시 기 를 표시 할 지 여부

@property(nonatomic)   BOOL   showsSelectionIndicator;
   
모두 몇 열 이 있 습 니까?

@property(nonatomic,readonly) NSInteger numberOfComponents;
2.UIPickerView 방법
모든 열 새로 고침

- (void)reloadAllComponents;
제 component 열 새로 고침

- (void)reloadComponent:(NSInteger)component;
제 component 열의 제 row 줄 을 주동 적 으로 선택 하 십시오.

- (void)selectRow:(NSInteger)row inComponent:(NSInteger)component animated:(BOOL)animated;
현재 선 택 된 줄 번호

- (NSInteger)selectedRowInComponent:(NSInteger)component;
3.UIPickerView 데이터 원본 방법
모두 몇 열 이 있 습 니까?

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView;
component 열 은 모두 몇 줄 입 니까?

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component;
4.UIPickerView 에이전트 방법
component 열의 너 비 는 얼마 입 니까?

- (CGFloat)pickerView:(UIPickerView *)pickerView widthForComponent:(NSInteger)component;
component 열의 줄 높이 는 얼마 입 니까?

- (CGFloat)pickerView:(UIPickerView *)pickerView rowHeightForComponent:(NSInteger)component;
component 열 제 row 줄 에 어떤 문 자 를 표시 합 니까?

- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component;
제 component 열 제 row 줄 에 어떤 view(내용)를 표시 합 니까?

- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view;
pickerView 의 component 열 열 열 열 열 열 행 을 선 택 했 습 니 다.

- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component;
실례
UIPickerView 는 iOS 의 일반적인 컨트롤 러 로 서 모두 가 이러한 요 구 를 가지 고 있다 고 믿 습 니 다.
오늘 우 리 는 간단하게 하 나 를 만 들 것 이다.
새 항목 이름:TestUIPickerView
기본 생 성 뷰 컨트롤 러 에 UIPickerView 만 들 기
우선 viewdLoad 방법 에서 만 듭 니 다.

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view, typically from a nib. 
     
    //  
    UIPickerView *pickerView = [[UIPickerView alloc] initWithFrame:CGRectMake(0, 100, 320, 216)]; 
    //  
    pickerView.showsSelectionIndicator=YES; 
    pickerView.dataSource = self; 
    pickerView.delegate = self; 
    [self.view addSubview:pickerView]; 
     
    _proTimeList = [[NSArray alloc]initWithObjects:@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9",@"10",nil]; 
    _proTitleList = [[NSArray alloc]initWithObjects:@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9",@"10",nil]; 
                  
                      

그리고 우 리 는 관련 대리 방법 을 만 듭 니 다.
UIPickerViewDataSource 관련 에이전트

#pragma Mark -- UIPickerViewDataSource 
// pickerView  
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView { 
    return 2; 

 
// pickerView  
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component { 
    if (component == 0) { 
        return [_proTitleList count]; 
    } 
     
    return [_proTimeList count]; 

UIPickerViewDelegate 관련 에이전트 방법

#pragma Mark -- UIPickerViewDelegate 
//  
- (CGFloat)pickerView:(UIPickerView *)pickerView widthForComponent:(NSInteger)component { 
     
    if (component == 1) { 
        return 40; 
    } 
    return 180; 

//  
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component 

    if (component == 0) { 
        NSString  *_proNameStr = [_proTitleList objectAtIndex:row]; 
        NSLog(@"nameStr=%@",_proNameStr); 
    } else { 
        NSString  *_proTimeStr = [_proTimeList objectAtIndex:row]; 
        NSLog(@"_proTimeStr=%@",_proTimeStr); 
    } 
     

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

    if (component == 0) { 
        return [_proTitleList objectAtIndex:row]; 
    } else { 
        return [_proTimeList objectAtIndex:row]; 
         
    } 

이상 코드 를 완성 한 후에 우 리 는 프로젝트 를 실행 하여 효 과 를 볼 수 있 습 니 다.
다음 그림:
20164191743901.jpg (640×960)

좋은 웹페이지 즐겨찾기