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.
Odpowiedzi:
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:
cell.selectionStyle = .none
Zmień UITableViewCell
„s selectedBackgroundView
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
cell.selectionStyle = UITableViewCellSelectionStyleNone
czasami coś głęboko narusza logikę animacji Jabłka.
UITableViewCell.appearance().selectionStyle = .None
awakeFromNib()
w swift 3
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
tableView.deselectRow(at: indexPath, animated: true)
}
Aby dodać własny kolor, użyj poniższego kodu. I aby był przezroczystyalpha: 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)
}
Dla Objc:
[komórka setSelectionStyle: UITableViewCellSelectionStyleNone];
- (void)viewDidLoad {
[super viewDidLoad];
_tableView.allowsSelection = YES;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
.. .. .. ..
[cell setSelectionStyle:UITableViewCellSelectionStyleNone];
. . . . ..
}
W przypadku Swift 5 najlepszym sposobem jest:
cell.selectionStyle = .none
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
}()
cell.selectionStyle = UITableViewCellSelectionStyleNone;
dodaj to do swojejcellForRowAtIndexPath
metody