Как я могу добавить 1-100 чисел в представление выбора программно?

#iphone #objective-c #xcode

#iPhone #objective-c #xcode

Вопрос:

Я создал UIPickerView вручную с тремя компонентами. Я хочу отображать числа от 1 до 100 в компоненте 1. Как я могу сделать это программно?

Ответ №1:

Я предполагаю, что вы внедрили методы

 - (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
    return 3;
}
 

и

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

    if (component == 1 )
    {
        return [NSString stringWithFormat:@"%d",(row 1)];
    }

    return @"";//required elements
}
 

Комментарии:

1. это наиболее разумный ответ, но row он имеет нулевой индекс, поэтому вы хотите компенсировать его на единицу: return [NSString stringWithFormat:@"%d", row 1]

Ответ №2:

в файле .h

 NSMutableArray *data ;
 

 data = [NSMutableArray alloc] init];
for (int i=1; i<=100; i  ){
     [data addObject:[NSString stringWithFormat:@"%d",i];
}
 

// это добавит 1-100 значений в ваш массив (данные)
Затем реализуйте UIPickerViewDelegate

 - (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)thePickerView {

return 1;
}
- (NSInteger)pickerView:(UIPickerView *)thePickerView numberOfRowsInComponent:(NSInteger)component {

return [data count];
}
- (NSString *)pickerView:(UIPickerView *)thePickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {
return [data objectAtIndex:row];
}
 

Ответ №3:

используйте приведенный ниже код, который поможет вам

 -(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component {
    if(component==1)
    return 100;
}
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
    if(component==1)
    return [NSString stringWithFormat:@"%i",row 1];

}
 

Ответ №4:

Вот быстрый ответ (просто проходящий). Используйте массив для хранения значений. Используйте какой-то цикл, чтобы быстро добавить значения 1-1000. Используйте что-то вроде этого, чтобы получить значение:

 -(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:   (NSInteger)component{
 return [component1Array objectAtIndex: row];
}