Я получил это табличное представление с сегментированными элементами управления в каждой ячейке. Я получаю данные из моей базы данных, которые я вставляю в сегментированный элемент управления ячейками. Но как не выбрать сегмент? Если примечание найдено в базе данных, оно возвращает -1. Я пробовал: segmentedControl.selectedSegmentIndex = -1;
, но не повезло. Похоже, что он устанавливает segmentedControl.selectedSegmentIndex = 0;
, будет выбран сегмент курса с индексом 0 независимо от того, что (даже если я получу результат или нет). Смотрите скриншоты, чтобы понять :)Сегментный контроль в tableviewcell
Btw Я могу выбрать столько сегментов, сколько хочу в каждом сегментированном элементе управления. Почему это возможно? Будет ли другая проблема исправлять это? :)
СПАСИБО!
Мой код для создания ячеек:
UITableViewCell *cell = nil;
cell = [tableView dequeueReusableCellWithIdentifier:@"StateCell"];
if (cell == nil)
{
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseI dentifier:@"StateCell"];
}
UIImage *correctImageGreen = [[UIImage imageNamed:@"green.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
UIImage *correctImageGul = [[UIImage imageNamed:@"gul.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
UIImage *correctImageRed = [[UIImage imageNamed:@"red.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
NSArray *itemArray = [NSArray arrayWithObjects: correctImageGreen, correctImageGul, correctImageRed, nil];
UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithItems:itemArray];
segmentedControl.frame = CGRectMake(308, 7, 150, 28);
[segmentedControl addTarget:self action:@selector(segmentAction:) forControlEvents:UIControlEventValueChanged];
int newIndexPath = indexPath.row + 1;
NSString *indexPathKey = [NSString stringWithFormat:@"%i", newIndexPath];
NSString *selectedState = [statefieldData valueForKey:[NSString stringWithFormat:@"StateField%@", indexPathKey]];
int selectedIndexInt = [selectedState intValue];
if (selectedIndexInt == -1) {
segmentedControl.selectedSegmentIndex = -1;
}
else {
segmentedControl.selectedSegmentIndex = selectedIndexInt;
}
[cell.contentView addSubview:segmentedControl];
cell.textLabel.text = [tableData objectAtIndex:indexPath.row];
cell.textLabel.textColor = [UIColor whiteColor];
cell.selectionStyle = UITableViewCellSelectionStyleNone;
[self.tableView setBackgroundColor:[UIColor colorWithRed:37 green:37 blue:37 alpha:0]];
cell.backgroundColor = [UIColor clearColor];
return cell;
[[self tableView] reloadData];
Привет! Я думаю, что segmentedControl не может иметь выделенный сегмент – shinyuX
Что? Сегментированные элементы управления предназначены для управления сегментами? Не было бы сегментированногоControl.selectedSegmentIndex = -1; если бы это было невозможно .. Если вы знаете, что мне нужно сделать, скажите. –