J'ai des questions lors de l'entretien.Je n'ai pas de vue de table ni de vue de collection dans xcode. Ensuite, je veux créer une ligne dynamiquement comme tableview. Comment puis je faire ça ? Merci d'avance.
3 Réponses :
Avec UIScrollView
, parcourir le nombre de "cellules" et les ajouter en tant que sous-vues.
Notez qu'une certaine logique pour les réutiliser comme défilement utilisateur serait nécessaire afin de ne pas déborder de mémoire en fonction de la quantité de "cellules".
De plus, vous devriez discuter de certaines méthodes de délégation et de source de données et des alternatives possibles à celles-ci.
L'utilisation d'une vue de pile à l'intérieur de la vue de défilement aidera également à définir des contraintes.
@pepsy pouvez-vous expliquer plus
Ce que je voulais dire, c'est qu'en utilisant "addArrangedSubview" de Stack View pour ajouter une cellule, il définira automatiquement les contraintes supérieure, inférieure, gauche et droite de votre cellule. Je peux répondre avec un exemple plus tard ce soir.
Les lignes ne sont que des vues. Si vous n'utilisez pas .xib comme UITableViewCell () ou depuis .xib comme UINib (...). instancier (...).
La première chose dont vous aurez besoin est un UIScrollView
, pour pouvoir faire défiler vos cellules. Comme il peut être assez ennuyeux de configurer les contraintes lors de l'ajout de sous-vues à une vue de défilement, j'utiliserais un UIStackView
vertical pour faciliter les choses.
Lorsque vous appelez addArrangedSubview (view: UIView)
d'une vue de pile verticale, il définira automatiquement des contraintes pour que votre sous-vue occupe toute la largeur de la vue de pile, et la positionnera juste sous la dernière vue à l'intérieur de la vue de la pile.
La structure de la vue ressemblerait à ceci:
Les contraintes de la vue de défilement seraient les suivantes:
Et les contraintes de la vue pile seraient celles-ci:
Vous pouvez également ajouter d'autres vues de pile à l'intérieur de la première pour créer différentes sections. Dans l'exemple ci-dessous, la vue de pile "principale" a un espacement de 5, tandis que les vues de pile "section 0" et "section 1" ont un espacement de 1.
Maintenant, comme l'a dit Gustavo Vollbrecht, si vous avez de nombreuses cellules sur votre "vue tableau", alors vous devrez implémenter une logique pour réutiliser les cellules, pour éviter les débordements de mémoire. Mais cela rendrait cette réponse beaucoup plus compliquée, donc j'espère que vous n'en aurez pas besoin.