2009-11-24 4 views

답변

2

가능합니다. 누구에게나 시도해보십시오. this.

1

나는 그것이 가능하지 않다고 생각합니다. 나는 많은 사람들이 가치 목록을 반복적으로 반복하고 가운데 어딘가에서 사용자를 시작한다고 들었다.

0

메모리가 작동하는 것처럼 작동합니다. 표시되지 않은 항목은 저장되지 않으므로 목록이 커질 수 있다고 말했습니다. 걱정되는 경우 프로파일 러에 문의하십시오. 많은 수의 행을 설정하고 높은 값으로 시작하는 것이 쉽기 때문에 사용자가 매우 오랜 시간 동안 휠을 스크롤 할 가능성은 거의 없습니다. - 그렇더라도 그보다 더 나쁜 것은 그들이 일어나면 바닥에 떨어질 것입니다.

(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component { 
    // Near-infinite number of rows. use NSIntegerMax, if memory problem, use less say 2000 
    return 2000; 
} 

(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component { 
    // Row n is same as row (n modulo numberItems). 
    return [NSString stringWithFormat:@"%d", row % numberItems]; // or your strings (this is for double. numberItems is your list size. 
} 

(void)viewDidLoad { 
    [super viewDidLoad]; 

    self.pickerView = [[[UIPickerView alloc] initWithFrame:CGRectZero] autorelease]; 
    // ...set pickerView properties... Look at Apple's UICatalog sample code for a good example. 
    // Set current row to a large value (adjusted to current value if needed). 
    [pickerView selectRow:3+1000 inComponent:0 animated:NO]; //pick about half the max you made earlier or about 100000 if using NSIntegerMax 
    [self.view addSubview:pickerView]; 
} 

- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component { 
    NSInteger actualRow = row % numberItems; //nb numberItems is your list size 
    // ... 
}