#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];
}