Constructor de interfaces (iOS 9+)
Simplemente arrastre un UIView a la mesa. En el guión gráfico, se ubicará en la parte superior debajo de las celdas personalizadas. Es posible que prefiera llamarlo "pie de página".
Aquí se muestra en verde para mayor claridad, probablemente desee un color claro.
Tenga en cuenta que al ajustar la altura, puede afectar la forma en que se maneja el "rebote inferior" de la tabla, como prefiera. (La altura cero suele estar bien).
Para hacerlo programáticamente:
Rápido
override func viewDidLoad() {
super.viewDidLoad()
self.tableView.tableFooterView = UIView()
}
C objetivo
iOS 6.1 o superior
- (void)viewDidLoad
{
[super viewDidLoad];
// This will remove extra separators from tableview
self.tableView.tableFooterView = [UIView new];
}
o si lo prefieres
self.tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];
Históricamente en iOS:
Agregar al controlador de vista de tabla ...
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {
// This will create a "invisible" footer
return CGFLOAT_MIN;
}
y si es necesario ...
- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section
{
return [UIView new];
// If you are not using ARC:
// return [[UIView new] autorelease];
}
tableFooterView
deja un separador en la última celda de la fila, ya que la tabla todavía anticipa el contenido debajo de esa celda. Usar la forma histórica eliminará ese último separador y se verá mejor en general.Aquí hay otra forma de hacerlo sin el estilo de tabla agrupada, y una que probablemente no adivinará. Agregar
un encabezado ypie de página a la tabla(tal vez uno u otro es suficiente, no se ha marcado)hace que los separadores desaparezcan de las filas de relleno / en blanco.Me topé con esto porque quería un poco de espacio en la parte superior e inferior de las mesas para disminuir el riesgo de presionar botones en lugar de una celda de la mesa con dedos carnosos. Aquí hay un método para pegar una vista en blanco como encabezado y pie de página. Use la altura que desee, aún elimina las líneas de separación adicionales.
En respuesta a @Casebash, volví al código en mi aplicación ("AcmeLists" List Manager en la tienda de iTunes ...) y cortocircuité el método addHeaderAndFooter para verificar. Sin él , tengo los separadores de fila adicionales; con el código, tengo lo que ves en esta ventana: no hay imagen de separadores de fila de tabla . Así que no estoy seguro de por qué no habría funcionado para ti. Además, tiene sentido para mí que tener un pie de página personalizado en una vista de tabla necesariamente tenga que dejar de dibujar separadores de fila para filas en blanco debajo de él. Eso sería horrible. Como referencia, miré las tablas donde había más filas de las que se podían ver en la pantalla, y luego una tabla con dos filas. En ambos casos, no hay separadores extraños.
Quizás sus vistas personalizadas no se agregaron realmente. Para comprobar esto, establecer el color de fondo a algo distinto
clearColor
, por ejemplo,[UIColor redColor]
. Si no ve algunas barras rojas en la parte inferior de la tabla, su pie de página no está configurado.fuente
Eliminar líneas de separación adicionales para filas vacías en UITableView en Swift
fuente
Me gustaría extender la respuesta wkw :
Simplemente agregar solo pie de página con altura 0 hará el truco. (probado en SDK 4.2, 4.4.1)
o incluso más simple: cuando configure su vista de tabla, agregue esta línea:
o incluso más simple: simplemente eliminar cualquier separador:
Gracias a wkw otra vez :)
fuente
Para iOS 7+ con Storyboards
Simplemente arrastre
UIView
aUITableView
como su pie de página. Establezca la altura de la vista de pie de página en 0.fuente
Prueba esto. A mí me funcionó:
fuente
Para Swift:
fuente
Si está utilizando Swift, agregue el siguiente código para verDidLoad del controlador que administra la vista de tabla:
fuente
Puede agregar un pie de página vacío al final y luego ocultará las celdas vacías, pero también se verá bastante feo:
Hay un mejor enfoque: agregue una línea de 1 punto al final de la vista de tabla como el pie de página y las celdas vacías tampoco se mostrarán más.
fuente
solo agregue este código ( Swift ). .
fuente
Avanzando en la solución de J. Costa: puede hacer un cambio global en la tabla poniendo esta línea de código:
dentro del primer método posible (generalmente en
AppDelegate
, en:application:didFinishLaunchingWithOptions:
método).fuente
Sé que esta pregunta ha sido aceptada como respuesta, pero pongo aquí diferentes formas de cómo ocultar la línea de separación adicional de
UITableView
.Puede ocultar
tableView
la línea de separación estándar y agregar su línea personalizada en la parte superior de cada celda.Actualizar:
La forma más fácil de agregar un separador personalizado es agregar simples
UIView
altura de 1 px:O
O
O La mejor y más simple forma que me gusta es
Prueba cualquiera de uno;
fuente
Puede encontrar muchas respuestas a esta pregunta. La mayoría de ellos alrededor de la manipulación con
UITableView
eltableFooterView
atributo de y esta es la forma correcta de ocultar filas vacías. Por conveniencia, he creado una extensión simple que permite activar / desactivar filas vacías desde Interface Builder. Puede consultarlo desde este archivo GIST . Espero que pueda ahorrar un poco de tu tiempo.Uso:
fuente
uitableview línea de separación adicional ocultar líneas de separación adicionales ocultar en swift 3.0
fuente
Si no desea ningún separador después de la última celda, necesita una altura cercana a cero pero distinta de cero para su pie de página.
En su
UITableViewDelegate
:fuente
Swift funciona muy bien con:
fuente
Simplemente agregue una vista con el color del separador deseado como color de fondo, 100% de ancho, 1px de altura en la posición x0 y-1 a su tableViewCell. Asegúrese de que tableViewCell no recorta subvistas, sino que tableView debería.
Por lo tanto, obtienes un separador simple y funcional solo entre las celdas existentes sin ningún hack por código o IB.
Nota: en un rebote vertical superior aparece el primer separador, pero eso no debería ser un problema porque es el comportamiento predeterminado de iOS.
fuente
Estaba usando una vista de tabla para mostrar un número fijo de filas de altura fija, así que simplemente cambié el tamaño y lo hice no desplazable.
fuente
Para eliminar las líneas de separación adicionales desde la parte inferior de UItableview mediante programación, simplemente escriba las siguientes dos líneas de código y eliminará el separador adicional.
Este truco funciona para mí todo el tiempo, pruébalo tú mismo.
fuente
Tuve suerte implementando una sola pieza de la respuesta aceptada (iOS 9+, Swift 2.2). Intenté implementar:
Sin embargo, no hubo ningún efecto en mi
tableView
, creo que puede tener algo que ver con el hecho de que estaba usandoUITableViewController
.En cambio, solo tuve que anular el
viewForFooterInSection
método (no configuré eltableFooterView
otro lugar):Esto funcionó bien para una
tableView
con una sola sección (si tiene varias secciones, debe especificar la última).fuente
Si solo tiene una sección, la forma más rápida y sencilla es configurar el Estilo de vista de tabla de "Normal" a "Agrupado". (ver imagen)
Si tiene más secciones, es posible que deba establecer la altura del encabezado en cero (dependiendo del gusto de su / su cliente / gerente de proyecto)
Si tiene más secciones y no desea meterse con los encabezados (incluso si es solo una línea en el caso más simple), entonces debe establecer una UIView como pie de página, como se explicó en las respuestas anteriores)
fuente
Extensión Swift 4.0
Solo una pequeña extensión para el guión gráfico:
fuente
Rápido y fácil Swift de 4 vías.
Si tienes celdas estáticas. También puede desactivar el separador desde la ventana del Inspector. (Esto no será deseable si necesita el separador. En ese caso, utilice el método que se muestra arriba)
fuente
super.viewDidLoad()
) y está incluido en la respuesta wiki en la parte superior. En cuanto a eliminar todos los separadores, de eso no se trata realmente esta pregunta, así que mejor deshaga su última edición y / o elimine su respuesta por completo.Si desea eliminar el espacio no deseado en UITableview, puede usar a continuación dos métodos
fuente
He agregado esta pequeña extensión de vista de tabla que ayuda en todo
fuente
Intenta con esto
para el objetivo C
para Swift
fuente
Prueba esto
fuente
UIKit
no crea una celda vacía cuandotableView
tiene untableFooterView
. Entonces podemos hacer un truco y asignar unUIView
objeto de altura cero como pie de página deltableView
.fuente
En caso de que tenga un
searchbar
en suview
(para limitar el número de resultados, por ejemplo), también debe agregar lo siguiente enshouldReloadTableForSearchString
yshouldReloadTableForSearchScope:
fuente
En Swift (estoy usando 4.0), puede lograr esto creando una
UITableViewCell
clase personalizada yoverriding
elsetSelected
método. Entoncesseparator insets
todo a 0 . (mi clase principal con la vista de tabla tiene un fondo claro) color.fuente