iOS Custom Cells (Italiano)


Esempio

Personalizzare un UITableViewCell può consentire interfacce molto potenti, dinamiche e reattive. Con un’ampia personalizzazione e in combinazione con altre tecniche si possono fare cose come: aggiornare specifiche proprietà o elementi dell’interfaccia quando cambiano, animare o disegnare cose nella cella, caricare in modo efficiente video mentre l’utente scorre, o anche visualizzare immagini mentre vengono scaricate da una rete. Le possibilità qui sono quasi infinite. Qui sotto c’è un semplice esempio di come potrebbe essere una cella personalizzata.

Esempio di una cella UITableViewCell personalizzata

Questa sezione copre le basi, e si spera che venga ampliata per dettagliare processi più complessi come quelli descritti sopra.

Creazione della cella personalizzata

Primo, create una nuova sottoclasse di UITableViewCell (create una nuova classe Cocoa Touch in Xcode e impostate UITableViewCell come superclasse). Di seguito è riportato come potrebbe apparire il vostro codice dopo la sottoclasse.

Swift

class CustomTableViewCell: UITableViewCell { static var identifier: String { return NSStringFromClass(self) } var customLabel: UILabel! override func awakeFromNib() { super.awakeFromNib() // Initialization code customLabel = UILabel(frame: CGRect(x: 0, y: 0, width: contentView.frame.width, height: contentView.frame.height)) customLabel.textAlignment = .center contentView.addSubview(customLabel) }}

Opzionalmente, controllate ‘Crea anche un file XIB’ quando create il vostro nuovo file da personalizzare usando Interface Builder. Nel caso in cui lo facciate collegate customLabel come un @IBOutlet

Crea anche un file XIB

In un UIViewController contenente il tableView, registra la nuova classe della cella personalizzata (vedi sotto). Nota, questo è necessario solo se non si progetta la cella con uno Storyboard nell’interfaccia della vista tabella.

Swift

override func viewDidLoad() { super.viewDidLoad() // Register Cell Class tableView.register(CustomTableViewCell.self, forCellReuseIdentifier: CustomTableViewCell.identifier)}

Se hai scelto di usare un file XIB, registerNib invece:

Swift

// Register NibtableView.register(UINib(nibName: CustomTableViewCell.identifier, bundle: nil), forCellReuseIdentifier: CustomTableViewCell.identifier)

Ora che il vostro tableView sa della vostra cella personalizzata, potete fare il dequeue in cellForRowAtIndexPath:

Swift

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { // Load the CustomTableViewCell. Make sure the identifier supplied here matches the one from your cell let cell: CustomTableViewCell = tableView.dequeueReusableCellWithIdentifier(CustomTableViewCell.identifier) as! CustomTableViewCell // This is where the magic happens - setting a custom property on your very own cell cell.customLabel.text = "My Custom Cell" return cell}

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *