iphone - example - UITableView que muestra más filas que las especificadas en numberOfRowsInSection:
uitableviewcell swift 3 (9)
Quiero que mi tableView muestre 6 filas con texto, en este caso "Ejemplo". Por lo que puedo decir, tengo mi numberOfSectionsInTableView:
y numberOfRowsInSection:
configurado correctamente. Vea el código de ejemplo a continuación:
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
// Return the number of sections.
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
// Return the number of rows in the section.
return 6;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
cell.textLabel.text = @"Example";
return cell;
}
El problema es cuando ve la imagen a continuación mostrando líneas para filas que no deberían / no existen.
¿Cómo me deshago de las líneas que muestran la fila anterior 6?
Es mucho más fácil:
- return numberOfSections + 1
- devuelve 0 filas en la sección final
¡Esto lo mantiene simple!
Esto es debido a su altura de vista de tabla. El tiempo que tiene Escribir
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
// Devuelve el número de filas en la sección. return 6; }
Pero muestra filas según Tamaño de vista de tabla. Si no desea mostrar estas líneas adicionales, haga que el estilo de UITableView sea sencillo para agrupar.
La forma generalmente aceptada de hacerlo es agregar una vista de pie de página con un tamaño de fotograma de CGRectZero, como tal:
[tableView setTableFooterView:[[UIView alloc] initWithFrame:CGRectZero]]
Lo que hace esto es decirle a la mesa que hay un pie de página, por lo que deja de mostrar las líneas de separación. Sin embargo, como el pie de página tiene un CGRectZero como marco, no se muestra nada, por lo que el efecto visual es que los separadores simplemente se detienen.
No dijiste lo que querías ver después de la última fila. Si solo desea ver el fondo de la ventana, simplemente incruste su vista de tabla en una UIView que sea lo suficientemente alta como para mostrar el número de filas que desea ver. Si desea ver más filas sin desplazarse, deberá ajustar el tamaño de esa vista en función del número de filas.
Para eliminarlo mediante programación, use esto: [yourTableView setSeparatorStyle:UITableViewCellSeparatorStyleNone];
Podrías hacer algo como:
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:7 inSection:0];
[self.mytableView cellForRowAtIndexPath:indexPath].hidden = YES;
Estoy seguro de que hay algunas formas mejores, pero esto es lo primero que me vino a la mente.
Respuesta corta y simple.
self.tableView.tableFooterView = [UIView new];
Si se refiere a las líneas grises claras que aparecen debajo de la última fila, esa es simplemente la forma predeterminada en que UITableView
dibuja el separador de filas.
Puede intentar cambiar el estilo de Separator en el Interface Builder (vea las imágenes a continuación) para ver si alguno de estos puede ser más de su agrado.
Versión Swift
El método más fácil es establecer la propiedad tableFooterView:
override func viewDidLoad() {
super.viewDidLoad()
// This will remove extra separators from tableview
self.tableView.tableFooterView = UIView(frame: CGRect.zero)
}