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

Отключить подсветку uitableview, но разрешить выбор отдельных ячеек

когда вы нажимаете на ячейку, строка выбирается и подсвечивается. Теперь я хочу отключить выделение, но разрешить выделение. Есть ли способ вокруг него. Существует вопрос, который отвечает на это, но он отключает выбор и выделение.

4b9b3361

Ответ 1

Вы можете просто установить стиль выбора ячейки в "Нет" из раскадровки:

See here

Или из кода:

cell.selectionStyle = UITableViewCellSelectionStyleNone;

Для Swift 3:

cell.selectionStyle = UITableViewCellSelectionStyle.none

Для Swift 4 и выше:

cell.selectionStyle = .none

Ответ 2

Измените цвет UITableViewCell selectedBackgroundView на прозрачный.

    let clearView = UIView()
    clearView.backgroundColor = UIColor.clearColor() // Whatever color you like
    UITableViewCell.appearance().selectedBackgroundView = clearView

или установить для конкретной ячейки:

cell.backgroundView = clearView

Ответ 3

Попробуйте установить стиль выбора ячейки в None -

[cell setSelectionStyle:UITableViewCellSelectionStyleNone];

Это решит вашу проблему.

Ответ 4

Для Swift 3.0:

cell.selectionStyle = .none

Ответ 5

Для Swift:

UITableViewCell.selectionStyle = UITableViewCellSelectionStyle.None;

Или когда вы подклассифицируете ячейку в swift:

class CustomCell : UITableViewCell {

    required init(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)!
        selectionStyle = .None
    }

}

Ответ 6

в быстрой 3

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        tableView.deselectRow(at: indexPath, animated: true)
}

Ответ 7

Для тех, кто ищет программный способ в Swift 3

cell.selectionStyle = UITableViewCellSelectionStyle.none

Ответ 8

Вы можете установить свойство выбора самой ячейки в раскадровке enter image description here

Ответ 9

Для объекта Objc:

[cell setSelectionStyle: UITableViewCellSelectionStyleNone];

- (void)viewDidLoad {
  [super viewDidLoad];
  _tableView.allowsSelection = YES;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    .. .. .. .. 
   [cell setSelectionStyle:UITableViewCellSelectionStyleNone];
   . . . . .. 
}

Ответ 10

Чтобы добавить собственный цвет, используйте код ниже. И чтобы сделать это прозрачным, используйте alpha: 0.0

cell.selectedBackgroundView = UIView(frame: CGRect.zero)
cell.selectedBackgroundView?.backgroundColor = UIColor(red:0.27, green:0.71, blue:0.73, alpha:1.0)

Если вы используете собственный цвет и хотите придать ему закругленный угол, используйте:

cell.layer.cornerRadius = 8

Кроме того, используйте это для лучшей анимации и чувствуйте

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {

    tableView.deselectRow(at: indexPath, animated: true)
}

Ответ 11

Вот решение для swift 3, работает даже в режиме редактирования

cell.selectionStyle = .gray
cell.selectedBackgroundView = {

    let colorView = UIView()
    colorView.backgroundColor = UIColor.black.withAlphaComponent(0.0)
    //change the alpha value or color to match with you UI/UX

    return colorView
}()

Ответ 12

Для Swift 5 лучший способ это:

cell.selectionStyle = .none