когда вы нажимаете на ячейку, строка выбирается и выделяется. Теперь я хочу отключить выделение, но разрешить выделение. Есть ли способ обойти это. Есть вопрос, который отвечает на это, но он отключает как выделение, так и выделение.
ios
objective-c
uitableview
солдатский
источник
источник
cell.selectionStyle = UITableViewCellSelectionStyleNone;
добавьте это в свойcellForRowAtIndexPath
методОтветы:
Вы можете просто установить стиль выделения ячейки на «Нет» в Раскадровке:
Или из кода:
cell.selectionStyle = UITableViewCellSelectionStyleNone;
Для Swift 3:
cell.selectionStyle = UITableViewCellSelectionStyle.none
Для Swift 4 и выше:
источник
Изменить
UITableViewCell
«SselectedBackgroundView
цвет прозрачный.let clearView = UIView() clearView.backgroundColor = UIColor.clearColor() // Whatever color you like UITableViewCell.appearance().selectedBackgroundView = clearView
или установить для конкретной ячейки:
cell.backgroundView = clearView
источник
cell.selectionStyle = UITableViewCellSelectionStyleNone
иногда что-то ломает глубоко внутри логики анимации Apple.UITableViewCell.appearance().selectionStyle = .None
awakeFromNib()
функцию ячейкиПопробуйте установить для стиля выделения ячеек значение Нет -
[cell setSelectionStyle:UITableViewCellSelectionStyleNone];
Это решит вашу проблему
источник
Для Swift 3.0 :
источник
Для Swift:
UITableViewCell.selectionStyle = UITableViewCellSelectionStyle.None;
Или когда вы быстро подклассифицируете ячейку:
class CustomCell : UITableViewCell { required init(coder aDecoder: NSCoder) { super.init(coder: aDecoder)! selectionStyle = .None } }
источник
в быстром 3
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { tableView.deselectRow(at: indexPath, animated: true) }
источник
Чтобы добавить собственный цвет, используйте приведенный ниже код. И чтобы было прозрачно использовать
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) }
источник
Для тех, кто ищет программный путь в Swift 3
cell.selectionStyle = UITableViewCellSelectionStyle.none
источник
Вы можете установить свойство выбора самой ячейки в раскадровке
источник
Для Objc:
- (void)viewDidLoad { [super viewDidLoad]; _tableView.allowsSelection = YES; } - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { .. .. .. .. [cell setSelectionStyle:UITableViewCellSelectionStyleNone]; . . . . .. }
источник
Для Swift 5 лучший способ:
источник
Вот решение для 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 }()
источник