iOS Custom Cells


Exemplo

P>Personalizar um UITableViewCell pode permitir interfaces muito potentes, dinâmicas, e reactivas. Com uma personalização extensiva e em combinação com outras técnicas pode fazer coisas como: actualizar propriedades específicas ou elementos de interface à medida que mudam, animar ou desenhar coisas na célula, carregar vídeo eficientemente à medida que o utilizador se desloca, ou mesmo exibir imagens à medida que estas são descarregadas de uma rede. As possibilidades aqui são quase infinitas. Abaixo está um exemplo simples de como pode ser uma célula personalizada.

Exemplo de uma célula personalizada UITableViewCell

Esta secção cobre o básico, e espera-se que seja expandida para detalhar processos mais complexos como os descritos acima.

Criando a sua célula personalizada

P>Primeiro, criar uma nova subclasse de UITableViewCell (criar uma nova Classe de Toque de Cacau em Xcode e definir UITableViewCell como a superclasse). Abaixo está o aspecto do seu código após a subclasse.

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) }}

Optionally, check ‘Also create a XIB file’ when creating your new file to customize using Interface Builder. No caso em que o faça, connect customLabel como um @IBOutlet

Criar também um ficheiro XIB

Num UIViewController contendo o tableView, registar a nova classe da célula personalizada (ver abaixo). Nota: isto só é necessário se não desenhar a célula com um Storyboard na interface da sua vista de tabela.

Swift

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

Se optar por utilizar um ficheiro XIB, registerNib em vez disso:

p>Swift

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

Agora que o seu tableView conhece a sua célula personalizada, pode decifrá-la em 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}

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *