2016-11-04 1 views
0

Actuellement, j'utilise storyboard dans xcode pour trouver la disposition ci-dessous. L'ensemble de l'écran est un tableauView avec 2 cellules prototypes différentes. Selon les données disponibles, l'une des 2 cellules sera créée.UITableView ou StackView

Pour la deuxième cellule, quelle est la meilleure façon de mettre la tableview avec Label2 et img2? J'ai essayé de le mettre dans une vue de pile simple avec une ligne 1px (un UIView) tirée de l'autre côté, mais la ligne semble plus mince ou plus courte selon la taille de l'écran de l'appareil. Un TableView résout le problème de ligne, mais il semble que beaucoup de travail pour une mise en page si simple. Spécialement quand il y a une tableView dans un tableauView est impliqué.

Est-ce que stackview est la solution? Peut-être qu'il me manque quelque chose qui fait que les lignes de séparation semblent différentes sur tous les appareils? Ou est une autre tableVoir une façon plus conventionnelle de le faire?

enter image description here

+0

Remarque: Les lignes apparaissent souvent plus épaisses ou plus minces dans le même écran. Comme les 2 premières lignes vont bien, mais la troisième sera plus épaisse. – tsf144

+0

Note 2: mettre les lignes à 2px de hauteur semble être plus uniforme. Mais l'interface utilisateur semble mauvaise avec 2 lignes px. – tsf144

Répondre

0

Je peux peut-être penser à une solution en utilisant la frontière dans la couche de vues:

view.layer.borderColor = UIColor.black.cgColor 
view.layer.borderWidth = 1 

Je ne sais pas vraiment ce que votre stackView ressemble mais je pense que vous pouvez adapter cette solution votre cas :)

+0

Oui, j'ai donné à la ligne une hauteur constante de 1 px. J'ai même donné aux cellules une hauteur constante de 30px, mais cela n'aide pas non plus. Je soupçonne que la mise en page automatique tente de combler toute divergence dans le contenu de la cellule, mais je ne sais pas pourquoi une ligne avec une hauteur 1px fixe apparaîtrait différente. – tsf144

0

Hmm, une erreur très novice. Il s'avère que c'est juste le simulateur. Lorsque je l'utilise sur un périphérique, tout va bien. Dans le simulateur, n'oubliez pas de régler le zoom sur 100%. (cmd + 1/2/3) Sinon, les lignes fines comme celle-ci apparaissent très différentes. En ce qui concerne la méthode choisie, je suis juste allé avec stackview avec UIView de 1px entre chaque cellule. C'est beaucoup plus facile à remplir avec des données pour une mise en page aussi simple.