uitableviewcontroller uitableviewcell tutorial efecto apple ios swift tableview

ios - tutorial - uitableviewcell swift



Cómo eliminar celdas vacías adicionales en TableViewController, iOS-Swift (14)

Hola, tengo un TableViewController con dos celdas estáticas, sin embargo, cuando se muestra, muestra las dos celdas estáticas y luego todas las demás celdas vacías para la vista de tabla. Sin embargo, no quiero mostrar esas celdas, ya que son inútiles. ¿Cómo oculto el resto de las celdas aparte de las dos celdas estáticas?


Abobe anwer tiene razón. Podemos lograr esto agregando

tableView.tableFooterView = UIView() // to remove extra cells in tableView


Agregue el siguiente código en sus funciones " override func viewDidLoad () " O "override func viewWillAppear (_ animated: Bool)" .

tblOutletName.tableFooterView = UIView ()


Basado en las respuestas anteriores en Swift .

tableView.tableFooterView = UIView(frame: .zero)


En swift 4 puede eliminar esas líneas innecesarias con un código simple de una línea:

//tableview refers to your UITableView tableView.separatorStyle = .none


La configuración de tableFooterView debería eliminar celdas adicionales como vistas.

@IBOutlet weak var tableView: UITableView! { didSet { tableView.tableFooterView = UIView(frame: .zero) } }


Para agregar a esto, la razón por la cual establecer tableFooterView en UIView() elimina las filas es porque está configurando un objeto UIView() vacío en la propiedad. Según la documentación de Apple:

var tableFooterView: UIView?

Por lo tanto, configurar un UIView vacío () no mostrará nada debajo de sus datos para esta propiedad.

Puede recuperar las filas vacías restableciendo tableFooterView al valor predeterminado, de esta manera:

tableView.tableFooterView = nil


Probé el tableview.tableFooterView = UIView () y no funcionó para mí. Estoy usando un TableViewViewCell personalizado, tal vez por eso.

Encontré un truco aunque. En mi func numberOfRowsInSection

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return yourArrayClass.count - 1 }

Y eso hace que mi UITableViewCell personalizado en blanco extra ya no se muestre. Por supuesto, es el extra en blanco. Lo probaré un poco más agregando más celdas. Como referencia, estoy usando Swift 3, Firebase, una clase de celda personalizada, dentro de la función cellForRowAt.


Seleccione su UITableView, vaya al inspector de atributos y cambie el estilo a Agrupado.


Simplemente agregue:

tableView.tableFooterView = UIView()

Explicación:

Esto es totalmente válido y funciona perfectamente en Swift 3. Al configurar un objeto UIView () vacío en la propiedad, al establecer tableFooterView en UIView () se eliminan las filas.


También puede lograr esto en Storyboard simplemente arrastrando una vista al área de pie de página de la vista de tabla, y luego establezca su altura y color de fondo en 1 y borre respectivamente utilizando el inspector de propiedades.

(Esto supone que no puede o no quiere usar la configuración de estilo de Grupo por alguna razón. De lo contrario, simplemente haga eso).


en su función viewDidLoad() agregue esta línea de código:

tableView.tableFooterView = UIView()


si desea eliminar filas para todas las UITableViews en su aplicación, simplemente agregue una extensión como esta:

Swift 4.0

extension UITableView { override open func didMoveToSuperview() { super.didMoveToSuperview() self.tableFooterView = UIView() }


Swift 4 Desarrollando la respuesta de HorseT, primero arrastre el control desde su Vista de tabla en su guión gráfico a su clase de Controlador de vista y cree una salida llamada tableView.

@IBOutlet weak var tableView: UITableView!

Entonces, su viewDidLoad en su controlador de vista debería verse así:

override func viewDidLoad() { super.viewDidLoad() tableView.dataSource = self tableView.delegate = self tableView.tableFooterView = UIView() }


tableView.tableFooterView = UIView.init(frame: CGRect.zero)

Llame a este código dentro del método viewWillAppear . Y va a funcionar