autolayout avec la dynamique subviews
Je suis en train de faire l'écran d'accueil sur mes ios 10 application comme sur la photo d'en haut. La vue verte est en fait une vue de défilement et j'ai fixé des contraintes pour qu'elle couvre toute la vue. Tout sur scrollView je veux faire défiler. La partie jaune est une vue de collection avec une cellule prototype. Le nombre d'articles sur cette vue est 6. La cellule se compose de la photo et du titre. La vue de table est la liste des nouvelles (photo + titre). Lorsque démarrer l'application en vue de table, je charge 10 dernières nouvelles et le reste des nouvelles que je reçois avec "charger plus" mécanisme. J'ai besoin d'un bon travail d'application même sur l'orientation du paysage. J'ai un problème pour définir cette disposition parce que la vue de collection et la tableView ont la taille dynamique et l'espace entre eux doit être fixé. Habituellement, sur presque tous les tutoriels, les utilisateurs ont simplement corrigé scrollView et GridView et dans ce cas, l'application semble bien sur l'orientation portrait, mais j'ai besoin d'une plus grande flexibilité. Est-il possible d'atteindre cet objectif par la mise en page automatique et les contraintes et si oui quelles sont les directions correctes
MISE À JOUR:
vue Collection
Wha Je veux atteindre est de faire la vue de la collection en tant que deux colonnes et 3 lignes en orientation portrait et 3 colonnes et 2 lignes sur le paysage. Actuellement, j'ai collectionView avec un parchemin mais je veux être élargi à l'heure car le contenu de collectionView devrait se composer de 6 nouvelles en surbrillance.
Sur viewDidLoad J'ai essayé de définir l'affichage de tableau de la position correcte (après vue de collection):
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
collection.dataSource = self
collection.delegate = self
tableView.delegate = self
tableView.dataSource = self
self.view.addConstraint(
NSLayoutConstraint(
item: tableView,
attribute: .top,
relatedBy: .equal,
toItem: collection,
attribute: .bottom,
multiplier: 1.0,
constant: 20
))
tableView.frame = CGRect(x: 0,y: collection.collectionViewLayout.collectionViewContentSize.height,width: tableView.frame.width,height: tableView.frame.width); // set new position exactly
downloadArticles(offset: "0") {}
}
Un exemple de ce que je veux réaliser est:
Actuellement je ceci:
Autolayout peut fonctionner avec des sous-vues dynamiques. Qu'est-ce qui ne fonctionne pas avec vos contraintes actuelles et que prévoyez-vous? Votre question devra être très claire pour que quelqu'un puisse même vous aider. –
Dans le cas où vous ne l'avez pas déjà fait, tous les contenus que vous souhaitez afficher dans votre vue de défilement doivent être des sous-vues dans une vue de conteneur et cette vue conteneur doit être la seule sous-vue de la vue défilante. – Zhang
@Zhang: Je l'ai déjà défini comme vous l'avez dit – Ognjen