Я пытаюсь настроить свой вид выбора так, чтобы его можно было проверять, например, когда вы щелкаете раскрывающийся список в веб-просмотре, как на картинке (веб-сайт YouTube).
http://img830.imageshack.us/img830/3747/screenshot20101004at606.png
Я использую метод viewForRowчтобы настроить представление для каждой строки в средстве выбора.
- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view
{
UIView *rowView = [[[UIView alloc] initWithFrame:CGRectMake(0, 0, 280, 44)] autorelease];
rowView.backgroundColor = [UIColor clearColor];
rowView.userInteractionEnabled = NO;
UIImageView *checkmarkImageView = [[UIImageView alloc] initWithFrame:CGRectMake(5, 10, 24, 19)];
UIFont *font = [ UIFont boldSystemFontOfSize:18];
UILabel *titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(35, 0, 240, 44) ];
NSString *pickerText = [[Itemlist objectAtIndex:row] objectForKey:@"name"];
titleLabel.text = pickerText;
titleLabel.textAlignment = UITextAlignmentLeft;
titleLabel.backgroundColor = [UIColor clearColor];
titleLabel.font = font;
titleLabel.opaque = NO;
if ([selected_property_id intValue] == row) {
titleLabel.textColor = [UIColor blueColor];
checkmarkImageView.image = [UIImage imageNamed:@"checkmark.png"];
}else {
titleLabel.textColor = [UIColor blackColor];
checkmarkImageView.image = nil;
}
[rowView addSubview:checkmarkImageView];
[rowView addSubview:titleLabel];
[titleLabel release];
[checkmarkImageView release];
return rowView;
}
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
[m_pickerView reloadAllComponents];
}
Когда я выбираю нужную строку, она добавляет флажок к выбранной строке совершенно НО, когда я прокручиваю средство выбора вверх / вниз, средство выбора автоматически выбирает строкув середине сборщика.Итак, он автоматически добавляет галочку в среднем ряду.
У меня вопрос, как отключить автоматический выбор в среднем ряду.Следует добавить галочку, когда пользовательские вкладки в строке, которые они хотят только (как в YouTube).
Должен ли я использовать метод сенсорного события для выбора выбора?
Спасибо за помощь.