2
votes

UITableView ContentInset et ContentOffset

J'ai des problèmes avec la propriété contentInset . J'ai un UITableView , avec des tailles de cellule dynamiques (AutoLayout). Je configure la propriété contentInset pour laisser un espace au-dessus du haut du contenu. Mais j'obtiens le résultat suivant:

 Résultat inattendu

Le contenu est en bleu, le contenu incrusté en violet. Lorsque la vue tableau apparaît pour la première fois, elle se trouve dans la situation de gauche. Je peux faire défiler pour arriver à la bonne situation, qui fonctionne, mais je voudrais que la vue de la table apparaisse directement comme dans la bonne illustration - ce que je pensais être le comportement par défaut.

Comment puis-je y parvenir?


2 commentaires

est-ce que cela aide? stackoverflow.com/questions/22020943/…


@RakeshaShastri J'ai déjà vu ça et j'ai essayé mais ça n'a pas fonctionné


4 Réponses :


0
votes

Voici comment cela peut être corrigé facilement à partir du Storyboard:

Vue tableau> Inspecteur de taille> Encarts de contenu: jamais


1 commentaires

Je n'utilise pas Storyboard, mais j'ai essayé d'utiliser scrollView.contentInsetAdjustmentBehavior, cela n'a pas aidé



0
votes

Vous fournissez un objet UIEdgeInset,

UIEdgeInsets(top: 50, left: 0, bottom: 0, right: 0)

La propriété top indique la distance entre le haut du contenu et la bordure supérieure de la zone.


1 commentaires

ouais c'est ce que je fais



3
votes

Je ne sais pas si c'est le meilleur moyen mais je l'ai corrigé en ajoutant:

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

après la ligne:

tableView.contentOffset.y = -70


0 commentaires

1
votes

vous pouvez faire défiler par programme lors du chargement de la vue.

tableView.setContentOffset(CGPoint(x: 0, y: -70), animated: false)


1 commentaires

C'est ce que j'ai fini par faire, pas très joli cependant. Je pensais que la vue de défilement s'ajusterait automatiquement pour qu'elle défile "vers le haut" directement