Réglage de la tableView de l'en-tête de la hauteur en Swift
Je suis en train de régler la hauteur de vue qui est sur le dessus de mon prototype de cellule dans une table view controller. J'utilise de l'IB à l'ensemble de la hauteur (la taille de l'inspecteur) et l'a mis à 61 comme (le vert de vue est le 'header' view):
Mais à chaque fois que je lance l'application, sa hauteur finit par être 568.0
. J'ai un IBOutlet appelé testUIView
pour l'afficher dans ma table view controller, et je n': println("testUIView Height->\(testUIView.frame.height)")
et, en effet, finit par être 568.0
au moment de l'exécution.
Voici une capture d'écran montrant sa hauteur au moment de l'exécution:
Donc ma question est: Comment puis-je régler l'affichage de la hauteur de sorte qu'il est de 61 ans au moment de l'exécution, donc en effet, elle ressemble à ma première capture d'écran (taille-sage)?
J'ai essayé de mettre le son de la taille de la propriété à l'intérieur de override func viewWillLayoutSubviews()
mais il ne me laisse pas affecter une valeur à la hauteur de testUIView.frame.height = CGFloat(61.0)
.
Toute aide est très appréciée! Merci à l'avance!
Cheers!
- Est-il une raison quelconque vous n'êtes pas à l'aide d'un en-tête pour votre vue de la table?
- En fait nan, désolé pour la question, mais comment puis-je l'utiliser?
Vous devez vous connecter pour publier un commentaire.
Si vous souhaitez utiliser un en-tête pour vous UITableView au lieu de cela, vous pouvez concevoir un autre prototype de cellule dans Interface Builder, faire une classe personnalisée basée sur une UITableViewCell et de l'attribuer à l'un prototype de cellule dans interface builder sur la classe de l'inspecteur.
Puis dans votre contrôleur, vous allez utiliser
Dans cette fonction vous êtes en train de créer une réutilisables cellule de votre tableau de point de vue, mais présentée comme la cellule personnalisé que vous avez fait pour l'en-tête. Vous aurez accès à l'ensemble de propriétés comme un UITableViewCell, alors vous êtes juste de retour de la cellule de vue
Une autre méthode que vous allez utiliser est
Que l'on est assez explicite.
Swift 3.0.1
Swift 3/Xcode 8:
Ajouter ceci dans le
viewDidLoad()
:Profitez-en!
Dans swift 4.1 et Xcode 9.4.1
Accepté la réponse n'est pas réellement répondre à la question. Elle offre plutôt une alternative à l'aide de la SECTION d'en-tête. Cette question a été répondue par d'autres, mais je vais dupliquer la réponse ici avec un peu plus d'instructions.
Chargement de la vue
Vues de Table sont aussi vieux que les iPhones et, par conséquent, il est parfois nécessaire de le forcer à faire ce que vous voulez.
Nous avons d'abord besoin de charger l'en-tête et de définir manuellement sa hauteur. Sinon, la vue va prendre plus de hauteur qu'il n'en faut. Nous le faisons sur la
viewDidLayoutSubviews
rappel:Comme vous pouvez le voir, j'aime mettre mes points de vue à l'intérieur de paresseux vars. Cela garantit qu'ils sont toujours créés, mais seulement quand je commence à les utiliser.
Vous pouvez voir que je suis le calcul de la hauteur. Dans certains cas, votre taille est fixe et, par conséquent, vous pouvez simplement régler la hauteur du cadre à une valeur codée en dur.
Établir des priorités
Nous assisterons probablement à une certaine contrainte des avertissements apparaissent dans notre débogueur. Cela se produit parce que la vue de la table d'abord les forces d'un 0x0 avant d'utiliser le taille nous l'avons précisé ci-dessus À ce moment, vos contraintes et de la hauteur de la vue sont en conflit les uns avec les autres.
Pour effacer ces, il nous suffit de définir la contrainte des priorités. D'abord, vous devez emballer votre en-tête de la vue des composants à l'intérieur d'un autre point de vue (en général j'ai toujours le faire pour l'en-tête de vues). Cela permettra de faciliter la gestion des contraintes beaucoup plus facile sur votre en-tête de la vue.
Il faut ensuite placer le bas de la contrainte priorités haute:
Voici un exemple plus complet:
AVERTISSEMENT: la Pensée, il est toujours utile comme un guide pour la pose de vos points de vue, de ne pas utiliser ce code si vous êtes à la création de votre point de vue à l'aide de pointes ou des storyboards.
Voici l'exemple de l'ensemble des contraintes qui pèsent en utilisant un composant logiciel enfichable kit:
Assurez-vous que vous l'ajouter à vos contraintes pour la
containerView
pasself
et l'utilisation containerView pour ajouter votre sous-vues de repos et de vos contraintes.