uitableviewcell switch stepper iphone objective-c ios uitableview

iphone - switch - uitableviewcell in swift



Poner marca de verificación en el lado izquierdo de UITableViewCell (6)

Quiero hacer algo similar a la página de configuración de WiFi: cuando toca la celda de la mesa, coloca una casilla de verificación en el lado izquierdo de la celda y tiene un botón de acceso a la vista de accesorios a la derecha para mostrar más detalles.

Mi pregunta: ¿hay una manera de poner la marca de verificación en el lado izquierdo de un UITableViewCell sin crear un UITableViewCell personalizado?


¡La respuesta es sí! No es necesario crear una celda personalizada para eso ni agregar vistas de imagen. Para simular casillas de verificación, solo tiene que anteponer un símbolo Unicode para un estado de casilla de verificación al texto de la celda.

Los símbolos Unicode que estoy usando para las casillas de verificación son /u2705 para verificados y /u2B1C para no verificados (casi lo mismo que /U0001F533 en iOS 5). iOS reproduce varios símbolos Unicode como iconos .

Aquí hay algunos otros símbolos:

@"/u2611", @"/u2B1C", @"/u2705", @"/u26AB", @"/u26AA", @"/u2714", @"/U0001F44D", @"/U0001F44E"

Imitando la página de configuración de Wi-Fi (con UITableViewCellStyleValue1 ):

cell.textLabel.text = @"/u2001 Wi-Fi 1"; cell.detailTextLabel.text = @"/U0001F512 /u268A"; cell.textLabel.text = @"/u2001 Wi-Fi 2"; cell.detailTextLabel.text = @"/U0001F512 /u268C"; cell.textLabel.text = @"/u2713 Wi-Fi 3"; cell.detailTextLabel.text = @"/U0001F513 /u2630";


Así que aquí hay una manera de hacerlo. Coloque un UIImageView en el borde izquierdo de la celda. No establezca una imagen para que esté en blanco como un comienzo.

Luego, asumiendo que estás haciendo una celda personalizada y una clase para ese UITableViewCell, haz algo como esto:

import UIKit class MyCustoTableViewCell: UITableViewCell { @IBOutlet weak var commandOption: UILabel! @IBOutlet weak var checkMarkImage: UIImageView! // Sets a left side checkmark on a cell when selected override func setSelected(selected: Bool, animated: Bool) { super.setSelected(selected, animated: animated) self.checkMarkImage.image = selected ? UIImage(named: "BlueCheck") : .None self.commandOption.font = selected ? UIFont(name: "Avenir-Heavy", size: 22) : UIFont(name: "Avenir-Book", size: 22) // more check mark on the right side // self.accessoryType = selected ? .Checkmark : .None } }

Tenga en cuenta que la parte inferior comentada es si desea la marca de verificación a la derecha. El método super.setSelecdted se activa cuando el usuario ha tocado la celda de la tabla. Asegúrese de tener esto implementado también:

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { // do any changes needed here or leave blank if just adding check } }

Finalmente, asegúrese de tener @ 2x y @ 3x marcar los activos de PNG en su carpeta de Activos. Tenga en cuenta que a estos se les llama "BlueCheck" en este ejemplo, pero use lo que llamen sus recursos de marca de verificación.

Este enfoque asegura que cuando un usuario selecciona una nueva fila, la marca de verificación desaparece en la celda actual.

En este caso, estoy escribiendo en negrita el texto que se encuentra a la derecha de la vista de la imagen para indicar que fue la fila seleccionada.



En Swift puede presionar Comando + Ctrl + Barra espaciadora para mostrar emoticonos y caracteres especiales o puede copiar esto ✓ ✔️


No. Tienes que crear una celda personalizada para eso.


Por supuesto que puedes hacer eso :) Por ejemplo, usa UITableViewCellStyle

UITableViewCellStyleDefault, // Simple cell with text label and optional image view //(behavior of UITableViewCell in iPhoneOS 2.x)

... y coloque una imagen de "marca de verificación" personalizada en esa "vista de imagen opcional".