Necesito agregar un espacio en blanco en la parte superior de mi UITableView que no afecta el tamaño del área de contenido. Cambiar el contenido hacia abajo o agregar una celda en blanco NO es lo que quiero hacer. En cambio, solo quiero una compensación.
¿Cómo?
ios
uitableview
cocoa-touch
uikit
contentoffset
bluefloyd8
fuente
fuente
Puede agregar una vista de encabezado "vacía" a la tabla ... esto le daría la apariencia inicial de la tabla para tener un desplazamiento, pero una vez que comience a desplazarse, el desplazamiento desaparecerá. No estoy seguro de que sea eso lo que quieres.
Si necesita un desplazamiento permanente y aún no está utilizando encabezados de sección, puede crear el desplazamiento de manera similar a lo anterior haciendo vistas personalizadas para los encabezados de sección, especialmente si solo tiene una sección, esto podría darle la apariencia de un desplazamiento permanente .
Puedo publicar código de muestra si parece que alguno de esos es lo que está buscando.
fuente
Combiné la respuesta de Jigzat con:
[self.tableView scrollRectToVisible:CGRectMake(0, 0, 320, 1) animated:NO];
en
- (void)viewDidLoad
por lo que la primera celda no está en la parte superior.
fuente
Swift 5.1
agregue lo siguiente en viewDidLoad
tableView.contentInset.top = 100
Realmente eso es todo lo que hay que hacer.
override func viewDidLoad() { super.viewDidLoad() tableView.contentInset.top = 100 }
fuente
Parece que desea envolver una 'Vista' alrededor de su
UITableView
. Si tiene unUITableViewController
en IBUITableView
, se establecerá automáticamente en elview
deUITableViewController
. Cambia laview
propiedad a una normalUIView
y agrega laUITableView
suya allí y le da un desplazamiento.--- Editar --- Acabo de leer mi publicación y pensé que tenía poco sentido :) Cuando creas una
UITableViewController
, obtienes esto (en pseudocódigo):UITableViewController.view = UITableView
Esto significa que la tabla real ocupará todo el espacio y ni siquiera puede agregar otras vistas. Entonces necesitas cambiar el
UITableViewController.view = UIView
y agrega tu mesa a eso
UIView
fuente
Combiné esta respuesta con esta: https://stackoverflow.com/a/9450345/1993937
Para hacer que tableView aparezca en la parte superior del recuadro de contenido, de modo que el espacio en la parte superior no se corte haciendo que tableView se desplace ligeramente hacia abajo cuando la vista aparece inicialmente. (18 es mi brecha superior)
[self.tableView setContentInset:UIEdgeInsetsMake(18,0,0,0)]; [self.tableView setContentOffset: CGPointMake(0, -self.songListTable.contentInset.top) animated:YES];
fuente