po dotknięciu komórki wiersz zostanie zaznaczony i podświetlony.Teraz chcę wyłączyć podświetlenie, ale zezwolić na wybór.Czy istnieje sposób na obejście tego.Jest pytanie, które odpowiada na to, ale wyłącza zarówno zaznaczanie, jak i podświetlanie.
ios
objective-c
uitableview
żołnierz
źródło
źródło
cell.selectionStyle = UITableViewCellSelectionStyleNone;
dodaj to do swojejcellForRowAtIndexPath
metodyOdpowiedzi:
Możesz po prostu ustawić styl zaznaczenia komórki na „Brak” w Storyboard:
Lub z kodu:
cell.selectionStyle = UITableViewCellSelectionStyleNone;
Dla Swift 3:
cell.selectionStyle = UITableViewCellSelectionStyle.none
Swift 4 i nowszy:
źródło
Zmień
UITableViewCell
„sselectedBackgroundView
kolor przezroczysty.let clearView = UIView() clearView.backgroundColor = UIColor.clearColor() // Whatever color you like UITableViewCell.appearance().selectedBackgroundView = clearView
lub ustawić dla określonej komórki:
cell.backgroundView = clearView
źródło
cell.selectionStyle = UITableViewCellSelectionStyleNone
czasami coś głęboko narusza logikę animacji Jabłka.UITableViewCell.appearance().selectionStyle = .None
awakeFromNib()
Spróbuj ustawić styl zaznaczania komórek na Brak -
[cell setSelectionStyle:UITableViewCellSelectionStyleNone];
To rozwiąże twój problem
źródło
Dla Swift 3.0 :
źródło
Dla Swift:
UITableViewCell.selectionStyle = UITableViewCellSelectionStyle.None;
Lub kiedy podklasujesz komórkę w szybkim:
class CustomCell : UITableViewCell { required init(coder aDecoder: NSCoder) { super.init(coder: aDecoder)! selectionStyle = .None } }
źródło
w swift 3
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { tableView.deselectRow(at: indexPath, animated: true) }
źródło
Aby dodać własny kolor, użyj poniższego kodu. I aby był przezroczysty
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)
Jeśli używasz niestandardowego koloru i chcesz nadać mu wygląd zaokrąglonych rogów, użyj:
cell.layer.cornerRadius = 8
Użyj tego również dla lepszej animacji i wrażenia
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { tableView.deselectRow(at: indexPath, animated: true) }
źródło
Dla tych, którzy szukają automatyzacji w Swift 3
cell.selectionStyle = UITableViewCellSelectionStyle.none
źródło
Możesz ustawić właściwość zaznaczenia samej komórki w serii ujęć
źródło
Dla Objc:
- (void)viewDidLoad { [super viewDidLoad]; _tableView.allowsSelection = YES; } - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { .. .. .. .. [cell setSelectionStyle:UITableViewCellSelectionStyleNone]; . . . . .. }
źródło
W przypadku Swift 5 najlepszym sposobem jest:
źródło
Oto rozwiązanie dla swift 3, działa nawet w trybie edycji
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 }()
źródło