2009-11-25 16 views
5

Voglio disattivare il clic su determinati mezzi di Cell.it, Non voglio mostrare il colore di evidenziazione (indicazione di selezione) quando tocchiamo una cella particolare? qualche aiuto per favore?come nascondere la selezione su UITableview?

+0

scusate. ho trovato la soluzione .. [cell setSelectionStyle: UITableViewCellSelectionStyleNone]; –

risposta

15

Utilizzare cell.selectionStyle = UITableViewCellSelectionStyleNone; o restituire false o restituire null nel metodo delegato tableView:willSelectRowAtIndexPath.

+0

Ho impostato lo stile su none nello storyboard ma le mie linee di separazione sono diventate furtive. Apparentemente ciò era dovuto alla mancata lettura della documentazione, la restituzione di nil nel metodo delegato specificato ha risolto il problema ... grazie per avermi salvato un po 'di tempo. –

0

Swift:

Se stai usando una cella personalizzato:

class YourCustomCell: UITableViewCell { 
    override func awakeFromNib() { 
     setup() 
    } 

    init() { 
     setup() 
    } 

    required init?(coder aDecoder: NSCoder) { 
     super.init(coder: aDecoder) 
    } 

    fileprivate func setup() { 
     self.selectionStyle = .none 
    } 
} 

Se non si utilizza una cella personalizzato:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 
    let cell = tableView.dequeueReusableCell(withIdentifier: "CellIdentifierID") 
    cell.selectionStyle = .none 
    return cell 
} 

Bonus: Se si desidera nascondere la selezione della cella e inoltre non si desidera chiamare func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {...}, impostare solo cell.isUserInteractionEnabled = false. Tuttavia, questa non è una buona pratica.

Problemi correlati