Pregunta Eliminar separadores adicionales debajo de UITableView [cerrado]


Cuando configuro una vista de tabla con 4 filas, todavía hay líneas de separadores adicionales (o celdas en blanco adicionales) debajo de las filas rellenas.

¿Cómo eliminaría estas células?

image for extra separator lines in UITableView


626
2017-09-02 20:05


origen


Respuestas:


Constructor de interfaz (iOS 9+)

Simplemente arrastre una UIView a la mesa. En el guión gráfico, se ubicará en la parte superior debajo de sus celdas personalizadas. Puede preferir llamarlo "pie de página".

Aquí se muestra en verde para mayor claridad, es probable que desee un color claro.

Tenga en cuenta que al ajustar la altura, puede afectar cómo se maneja el "rebote del fondo" de la tabla, como prefiera. (La altura cero por lo general es buena).

enter image description here


Para hacerlo programáticamente

Rápido

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

C objetivo

iOS 6.1+

- (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];
}

1350
2017-11-24 12:17



Aquí hay otra manera de hacerlo sin el estilo de tabla agrupada, y uno que probablemente no adivinará. Añadiendo un encabezado y pie de página a la mesa (tal vez una u otra basta, no se ha verificado) hace que los separadores desaparezcan del relleno / filas en blanco.

Me encontré con esto porque quería un pequeño espacio en la parte superior e inferior de las mesas para disminuir el riesgo de presionar los botones en lugar de una celda de la mesa con los 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 así eliminará las líneas de separación adicionales.

- (void) addHeaderAndFooter
{
    UIView *v = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 10)];
    v.backgroundColor = [UIColor clearColor];
    [self.myTableView setTableHeaderView:v];
    [self.myTableView setTableFooterView:v];
    [v release];
}

En respuesta a @Casebash, volví al código en mi aplicación (Administrador de listas "AcmeLists" en la tienda iTunes ...) y cortocircuité el método addHeaderAndFooter para verificar. Sin ello, Tengo los separadores de fila adicionales; con el código, tengo lo que ves en este complemento de ventana: sin separadores de fila de la tabla. Así que no estoy seguro de por qué no hubiera funcionado para ti. Además, tiene sentido para mí que tener cualquier 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 para una tabla con dos filas. En ambos casos, no hay separadores extraños.

Quizás sus vistas personalizadas no se hayan agregado realmente. Para verificar eso, configure el color de fondo en algo diferente a clearColor, p.ej., [UIColor redColor]. Si no ve algunas barras rojas en la parte inferior de la tabla, su pie de página no estaba configurado.


125
2017-10-29 05:44



Extracción de líneas separadoras adicionales para filas vacías en UITableView en Rápido

override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        self.yourTableview.tableFooterView = UIView()
    }

51
2018-03-24 16:21



Me gustaría extender wkw responder:

Simplemente agregar solo pie de página con altura 0 hará el truco. (probado en SDK 4.2, 4.4.1)

- (void) addFooter
{
    UIView *v = [[UIView alloc] initWithFrame:CGRectZero];

    [self.myTableView setTableFooterView:v];
}

o incluso más simple: donde configura su vista de tabla, agregue esta línea:

//change height value if extra space is needed at the bottom.
[_tableView setTableFooterView:[[UIView alloc] initWithFrame:CGRectMake(0,0,0,0)]];

o incluso simplier - simplemente eliminar cualquier separador:

[_tableView setTableFooterView:[UIView new]];

Gracias a wkw de nuevo :)


36
2018-03-18 01:27



Para iOS 7+ con Storyboards

Simplemente arrastre una UIView en tu UITableView como el pie de página. Establezca la altura de la vista del pie de página en 0.


20
2017-11-16 11:35



Prueba esto. Funcionó para mí:

- (void) viewDidLoad
{
  [super viewDidLoad];

  // Without ARC
  //self.tableView.tableFooterView = [[[UIView alloc] init] autorelease];

  // With ARC, tried on Xcode 5
  self.tableView.tableFooterView = [UIView new];
}

17
2017-07-25 11:36



Para Swift:

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

10
2018-04-12 15:16



Si está usando Swift, agregue el siguiente código a viewDidLoad del controlador que administra la vista de tabla:

override func viewDidLoad() {
    super.viewDidLoad()

    //...

    // Remove extra separators
    tableView.tableFooterView = UIView(frame: CGRectZero)
}

7
2017-11-06 11:41