Question

Je dois ajouter un peu d'espace vide au sommet de mon UITableView qui ne modifie pas la taille de la zone de contenu. Déplacer le contenu vers le bas ou l'ajout d'une cellule vide est pas ce que je veux faire. Au lieu de cela, je veux juste un décalage.

Comment?

Était-ce utile?

La solution

Je ne sais pas si je vous suis, mais je pense que je vais avoir la même situation. Dans mon cas, je dois donner un peu d'espace à l'ADBannerView en haut de l'écran si ce que je faisais était dans la méthode viewDidLoad j'ai ajouté:

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

les valeurs qu'elle prend sont UIEdgeInsetsMake (en haut, à gauche, en bas, à droite).

Vous pouvez également la même chose avec Swift:

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

Swift 4.2:

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

Autres conseils

Vous pouvez ajouter une vue d'en-tête « vide » à la table ... cela donnerait l'apparence initiale de la table pour avoir un décalage, mais une fois que vous avez commencé le défilement du décalage serait allé. Je ne sais pas c'est ce que vous voulez.

Si vous avez besoin d'un décalage permanent et ne sont pas déjà en-têtes de section, vous pouvez créer de la même décalage ci-dessus en faisant des vues personnalisées pour les en-têtes de section, surtout si vous avez juste une partie, cela pourrait vous donner l'apparence de un décalage permanent.

Je peux le code exemple si poster cela ressemble à l'un de ceux qui sont ce que vous recherchez.

Je combiné la réponse de Jigzat avec:

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

- (void)viewDidLoad

de sorte que la première cellule est pas au sommet.

Sons comme vous voulez envelopper 'View' autour de votre UITableView. Si vous avez un UITableViewController dans IB le UITableView sera automatiquement réglé sur la view de UITableViewController. Vous pouvez changer la propriété view à un UIView normal et ajoutez votre UITableView là-dedans et lui donner un décalage.

--- --- Modifier Je viens de lire mon post et je pensais qu'il avait peu de sens :) Lorsque vous créez un UITableViewController vous obtenez ceci (dans le code pseudo):

UITableViewController.view = UITableView

Cela signifie que la table réelle prendra tout l'espace et vous ne pouvez même ajouter d'autres points de vue. Donc, vous devez changer la balise

UITableViewController.view = UIView

et ajoutez votre table pour que UIView

Je combiné cette réponse avec celle-ci: https://stackoverflow.com/a/9450345/1993937

Pour faire apparaître le tableView en haut de l'encart de contenu, de sorte que l'espace en haut est pas coupée en ayant le tableView défilée en légère baisse lorsque la vue apparaît d'abord. (Figure 18 est mon écart supérieur)

[self.tableView setContentInset:UIEdgeInsetsMake(18,0,0,0)];
[self.tableView setContentOffset:
 CGPointMake(0, -self.songListTable.contentInset.top) animated:YES];
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top