Pregunta

Tengo que añadir un poco de espacio en blanco a la parte superior de mi UITableView que no afecta el tamaño del área de contenido. Cambiando el contenido de abajo o la adición de una celda en blanco no es lo que yo quiero hacer. En su lugar sólo quiero un desplazamiento.

¿Cómo?

¿Fue útil?

Solución

No estoy seguro de si yo estoy siguiendo, pero creo que estoy teniendo la misma situación. En mi caso tengo que dar un poco de espacio a la ADBannerView en la parte superior de la pantalla, de manera que lo que hice en el método viewDidLoad que ha añadido:

[self.tableView setContentInset:UIEdgeInsetsMake(50,0,0,0)];

los valores que toma son UIEdgeInsetsMake (arriba, izquierda, abajo, derecha).

Alternativamente, el mismo con Swift:

self.tableView.contentInset = UIEdgeInsetsMake(50, 0, 0, 0)

Swift 4.2:

self.tableView.contentInset = UIEdgeInsets(top: 50, left: 0, bottom: 0, right: 0)

Otros consejos

Se puede añadir una vista de encabezamiento "vacío" a la mesa ... esto daría la apariencia inicial de la tabla para tener un desplazamiento, pero una vez que comenzó el desplazamiento el desplazamiento habría desaparecido. No estoy seguro de que es lo que quieres.

Si necesita una permanente encabezados de sección desplazada y no estén utilizando, entonces se podría crear el desplazamiento de manera similar a la anterior, haciendo vistas personalizadas para los encabezados de sección, sobre todo si sólo tienen una sección, esto podría darle el aspecto de un permanente desplazamiento.

Publicación de código de ejemplo si suena como cualquiera de los que son lo que busca.

I combinado con la respuesta de Jigzat:

[self.tableView scrollRectToVisible:CGRectMake(0, 0, 320, 1) animated:NO];

en

- (void)viewDidLoad

lo que la primera célula no es en la parte superior.

Sonidos como desee para envolver a 'Ver' alrededor de su UITableView. Si usted tiene un UITableViewController en el IB UITableView se ajustará automáticamente a la view de UITableViewController. Se cambia la propiedad view a un UIView normal y agregue su UITableView allí y darle una compensación.

--- --- Editar Acabo de leer mi post y pensé que no tenía mucho sentido :) Cuando se crea un UITableViewController obtiene este (en pseudocódigo):

UITableViewController.view = UITableView

Esto significa que la tabla real ocupará todo el espacio y no se puede incluso añadir otros puntos de vista. Así que hay que cambiar el

UITableViewController.view = UIView

y añadir su mesa para que UIView

combiné esta respuesta con éste: https://stackoverflow.com/a/9450345/1993937

Para hacer que el tableView aparece en la parte superior de la inserción de contenido, así que el espacio en la parte superior no se corta por tener el tableView desplaza ligeramente hacia abajo cuando aparece inicialmente la vista. (18 es mi brecha superior)

[self.tableView setContentInset:UIEdgeInsetsMake(18,0,0,0)];
[self.tableView setContentOffset:
 CGPointMake(0, -self.songListTable.contentInset.top) animated:YES];
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top