Мне нужно изменить выбранный по умолчанию синий цвет в виде таблицы на определенный пользовательский цвет. Есть ли способ сделать это. Помогите мне
Необходимо изменить цвет выбора вида таблицы.
Ответ 1
Лучший способ сделать это:
// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"myCellId";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
UIView *v = [[[UIView alloc] init] autorelease];
v.backgroundColor = [UIColor redColor];
cell.selectedBackgroundView = v;
}
// Set up the cell...
cell.textLabel.text = @"foo";
return cell;
}
Соответствующая часть для вас - это команда cell.selectedBackgroundView = v;
.
Вы можете заменить основной вид 'v' здесь любым видом, который вам нравится.
Ответ 2
Я также столкнулся с этой проблемой, пытаясь создать пользовательские выбранные представления ячеек для сгруппированной ячейки. Я решил эту проблему, создав 3 типа изображений для верхней, средней и нижней части ячейки, предполагая, что будет средняя ячейка.
NSString *imageFile;
if (row == 0) {
imageFile = @"highlighted_cell_top.png";
} else if (row == ([registeredDetailsKeys count] - 1)) {
imageFile = @"highlighted_cell_bottom.png";
} else {
imageFile = @"highlighted_cell_middle.png";
}
UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:imageFile]];
cell.selectedBackgroundView = imageView;
Возможно, есть более простой способ, но я доволен результатом.
Ответ 3
Я не думаю, что вы можете использовать собственный цвет. Однако вы можете использовать следующее свойство UITableViewCell
@property(nonatomic) UITableViewCellSelectionStyle selectionStyle
Стиль выделения - это константа backgroundView, которая определяет цвет ячейки при ее выборе. Значение по умолчанию - UITableViewCellSelectionStyleBlue. Так как
typedef enum {
UITableViewCellSelectionStyleNone,
UITableViewCellSelectionStyleBlue,
UITableViewCellSelectionStyleGray
} UITableViewCellSelectionStyle;
вы можете переключаться с голубого по умолчанию на серый или без цветного выделения.
Ответ 4
Убедитесь, что после объявления в заголовке
@property(nonatomic) UITableViewCellSelectionStyle selectionStyle
Выполнить
cell.selectionStyle = UITableViewCellSelectionStyleGray
где UITableViewCellSelectionStyleGray
может быть UITableViewCellSelectionStyleNone
, UITableViewCellSelectionStyleBlue
, UITableViewCellSelectionStyleGray
.
Ответ 5
Другим способом сделать это было бы перемещение нового представления по вашей ячейке с любым цветом, который вам нужен, и непрозрачностью 50%. Вы перемещаете этот вид в ячейку, когда вы получаете -setSelected: анимированный: вызов. Когда я говорю "move", вы можете всегда иметь представление поверх своей ячейки, но просто выключите и выключите скрытый бит, как вам нужно.