这似乎是直接从文档非常标准的代码,所以我不知道我做错了......选择器不能识别的最后一排
我的三分量选择器看起来不正确时它加载时,选择指示器在拾取器上放置得太低(所以灰色条被正确放置,但明显的凸起的覆盖层太低)。
然后,当我选择一行时,除非选择最后一行,否则它会完美地工作,在这种情况下,它认为我选择了倒数第二行。
数组中的标题数是正确的(例如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);
}
谢谢你的帮忙!
有没有其他人有这个问题?总之,选取器显示最后一行,但我不能选择它。谢谢!
我可以建议你重新标记以包含语言/应用程序/ ???这是指 – Basic 2010-09-30 16:36:48
当然......这有帮助吗?谢谢! – snorkelt 2010-09-30 18:32:07