Подтвердить что ты не робот

Необходимо изменить цвет выбора вида таблицы.

Мне нужно изменить выбранный по умолчанию синий цвет в виде таблицы на определенный пользовательский цвет. Есть ли способ сделать это. Помогите мне

4b9b3361

Ответ 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", вы можете всегда иметь представление поверх своей ячейки, но просто выключите и выключите скрытый бит, как вам нужно.