J'ai besoin d'ajouter un espace vide en haut de mon UITableView qui n'affecte pas la taille de la zone de contenu. Décaler le contenu vers le bas ou ajouter une cellule vide n'est PAS ce que je veux faire. Au lieu de cela, je veux juste un décalage.
Comment?
ios
uitableview
cocoa-touch
uikit
contentoffset
bluefloyd8
la source
la source
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é à faire défiler, le décalage disparaîtrait. PAS sûr que c'est ce que vous voulez.
Si vous avez besoin d'un décalage permanent et que vous n'utilisez pas déjà les en-têtes de section, vous pouvez créer le décalage de la même manière que ci-dessus en créant des vues personnalisées pour les en-têtes de section, en particulier si vous n'avez qu'une seule section, cela pourrait vous donner l'apparence d'un décalage permanent. .
Je peux publier un exemple de code s'il semble que l'un de ces éléments correspond à ce que vous recherchez.
la source
J'ai combiné la réponse de Jigzat avec:
[self.tableView scrollRectToVisible:CGRectMake(0, 0, 320, 1) animated:NO];
dans
- (void)viewDidLoad
donc la première cellule n'est pas en haut.
la source
Swift 5.1
ajoutez ce qui suit dans viewDidLoad
tableView.contentInset.top = 100
C'est vraiment tout ce qu'il y a à faire.
override func viewDidLoad() { super.viewDidLoad() tableView.contentInset.top = 100 }
la source
On dirait que vous voulez envelopper une «vue» autour de votre
UITableView
. Si vous avez unUITableViewController
dans IB, leUITableView
sera automatiquement réglé sur leview
deUITableViewController
. Vous changez laview
propriété à une normaleUIView
et ajoutez votreUITableView
ici et lui donnez un décalage.--- Modifier --- Je viens de lire mon article et j'ai pensé que cela n'avait pas de sens :) Lorsque vous créez un,
UITableViewController
vous obtenez ceci (en pseudo code):UITableViewController.view = UITableView
Cela signifie que la table réelle occupera tout l'espace et que vous ne pouvez même pas ajouter d'autres vues. Vous devez donc changer le
UITableViewController.view = UIView
et ajoutez votre table à cela
UIView
la source
J'ai combiné cette réponse avec celle-ci: https://stackoverflow.com/a/9450345/1993937
Pour faire apparaître tableView en haut de l'encart de contenu, de sorte que l'espace en haut ne soit pas coupé en faisant défiler légèrement la tableView lorsque la vue apparaît initialement. (18 est mon premier écart)
[self.tableView setContentInset:UIEdgeInsetsMake(18,0,0,0)]; [self.tableView setContentOffset: CGPointMake(0, -self.songListTable.contentInset.top) animated:YES];
la source