Это похоже на довольно стандартный код прямо из документа, поэтому я не уверен, что делаю неправильно ...
Мой трехкомпонентный сборщик не выглядит правильно при загрузке, синдикатор выбора расположен слишком низко по всей панели выбора (таким образом, серая полоса правильно размещена, но четкое выпуклое наложение слишком низкое).
Затем, когда я выбираю строку, все работает отлично, если только явыберите последнюю строку, и в этом случае он считает, что я выбрал строку, следующую за последней.
Количество заголовков в массиве является правильным (например, 7), и когда я выбираю строки "0-5 "это прекрасно работает, но когда я выбираю строку" 6 "(7-я строка), он все еще думает, что я выбираю" 5 ".Таким образом, и шестая, и седьмая строки будут возвращать «5» вместо «5 и 6».
Это происходит для всех трех компонентов, и на самом деле происходит аналогичным образом в другом из моих более простыхсредства выбора в другом месте кода (на самом деле, с этим средством выбора, только когда я прихожу из родительского контроллера представления. Когда я прихожу из дочернего контроллера представления, все в порядке).
Вы можете помочь?
- (void)loadmypicker {
UIPickerView *mypicker = [[UIPickerView alloc] init];
[mypicker setDataSource:self];
[mypicker setDelegate:self];
pickerTitles_Dil = [[NSArray alloc] initWithObjects:@"0", @"1", @"2", @"3", @"4", @"5", @"6", nil];
pickerTitles_Eff = [[NSArray alloc] initWithObjects:@"a", @"b", @"c", @"d", @"e", @"f", @"g", @"h", @"i", @"j", @"k", nil];
pickerTitles_Stat = [[NSArray alloc] initWithObjects:@"A", @"B", @"C", @"D", @"E", @"F", @"G", nil];
[mypicker setShowsSelectionIndicator:YES];
[mypicker selectRow:0 inComponent:0 animated:NO];
[mypicker selectRow:0 inComponent:1 animated:NO];
[mypicker selectRow:0 inComponent:2 animated:NO];
[mypicker setFrame:CGRectMake(0, 98, 320, 253)];
[self addSubview:mypicker];
[mypicker release];
}
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {
if (component == 0)
return [pickerTitles_Dil objectAtIndex:row];
else if (component == 1)
return [pickerTitles_Eff objectAtIndex:row];
else return [pickerTitles_Stat objectAtIndex:row];
}
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView {
return 3;
}
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component {
if (component == 0)
{return [pickerTitles_Dil count];
}
else if (component == 1)
{return [pickerTitles_Eff count];
}
else
{return [pickerTitles_Stat count];
}
}
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{
NSLog (@"row: %d, component :%d", row, component);
}
Спасибо за помощь!
У кого-нибудь еще была такая проблема?Подводя итог, сборщик показывает последний ряд, но я не могу выбрать его.Спасибо!