я есть UIPickerView и я хочу, чтобы иметь 2 колонки, заполненные с элементами из моих массивов, но я не могу понять, как, есть мои массивы:Как заполнить pickerView правильно
-(void)fillingStandartWeightArray{
if (!standartWeightArray){
for (int i=25; i<150 ;i++){
NSString *weightString;
weightString = [NSString stringWithFormat:@"%d kg", i];
[standartWeightArray addObject:weightString];
NSLog(@"%@", weightString);
}
}
}
-(void)fillingStandartHeightArray{
if (!standartHeightArray){
for (int i=85; i<250; i++){
NSString *heightString;
heightString = [NSString stringWithFormat:@"%d cm", i];
[standartHeightArray addObject:heightString];
NSLog(@"%@", heightString);
}
}
}
Чтобы быть более конкретным Я не знаю, как «рассказать» UIPickerView, чтобы заполнить одно из его колес одним массивом, а другое - другим массивом. Я попытался это:
-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{
if (component == 0){
return [standartWeightArray count];
} else {
return [standartHeightArray count];
}
}
-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView{
return 2;
}
-(NSString*)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{
if (component == 0)
return [standartWeightArray objectAtIndex:row];
else if (component == 1)
return [standartHeightArray objectAtIndex:row];
}
И я сделал функцию вызова в разделах viewDidLoad:
- (void)viewDidLoad
{
[super viewDidLoad];
[self fillingStandartWeightArray];
[self fillingStandartHeightArray];
NSLog(@"%@", standartWeightArray);
}
Но это не работает.
Да, теперь он работает, один маленький вопрос, я незнакомый с этим новым синтаксисом, является «новым», равным «alloc] init];»? –
Нет разницы. Вы можете использовать любой из них. – nkongara