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];
}
}
이상 코드 를 완성 한 후에 우 리 는 프로젝트 를 실행 하여 효 과 를 볼 수 있 습 니 다.다음 그림:
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
View의 레이아웃 방법을 AutoLayout에서 따뜻한 손 계산으로 하면 성능이 9.26배로 된 이야기이 기사는 의 15 일째 기사입니다. 어제는 에서 이었습니다. 손 계산을 권하는 의도는 없고, 특수한 상황하에서 계측한 내용입니다 화면 높이의 10 배 정도의 contentView가있는 UIScrollView 레이아...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.