0
votes

Puis-je ajouter une vue de collection à une collection Voir l'en-tête de la section?

Donc, j'essaie de comprendre comment ajouter deux vues de collecte sur le contrôleur de vue Nom. À l'heure actuelle, la vue de la collection actuelle est une vue de collection de défilement verticale qui affiche les publications des utilisateurs sur le flux. Je voudrais ajouter une section "personnes à suivre" qui fait défiler horizontalement sur le dessus. Veuillez noter que j'aimerais que la vue de la collection horizontale accélère avec toute la vue.

quelque chose qui ressemblera à ce p>

 Entrez la description de l'image ici P> J'ai pensé à ajouter un en-tête de section, puis essayez d'ajouter une vue de collection en cela, mais je ne sais pas si c'est une configuration illégale. P>

Je ne sais pas non plus si je dois ajouter 2 sections dans le numéro de sections code> Ligne. p>

Voici le code de vue de la collection actuellement. P>

@IBOutlet weak var collectionView: UICollectionView!

    // MARK: - UICollectionViewDataSource

     func collectionView(_ collectionView: UICollectionView, willDisplay cell: UICollectionViewCell, forItemAt indexPath: IndexPath) {
        if posts.count > 4 {
            if indexPath.item == posts.count - 1 {
                fetchPosts()
            }
        }
    }

     func numberOfSections(in collectionView: UICollectionView) -> Int {
        return 1
    }

     func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
        if viewSinglePost {
            return 1
        } else {
            if posts.count == 0 {
            self.collectionView.setEmptyMessage("You haven't followed anyone yet.")
            } else {
                self.collectionView.restore()
            }
            return posts.count
        }
    }

     func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
        let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "PostsCell", for: indexPath) as! FollowingCell

        cell.delegate = self

        if viewSinglePost {
            if let post = self.post {
                cell.post = post

            }
        } else {
            cell.post = posts[indexPath.item]
        }

            handleUsernameLabelTapped(forCell: cell)
            handleMentionTapped(forCell: cell)
            handleHashtagTapped(forCell: cell)

        return cell
    }


2 commentaires

En fait, vous voulez ajouter deux vues de collecte? Topper est horizontal et le bas est vertical? Si oui, alors je vais répondre à votre question de manière élaborée


@Ankurlahiry, soit oui, mais je veux que la vue de la collection horizontale défilte avec toute la vue. C'est pourquoi ma première pensée devait ajouter un en-tête de section puis placer la vue de la collection horizontale à l'intérieur de cela. Puis renvoyez les profils que je veux présenter là-bas.


3 Réponses :


-1
votes

Vous pouvez définir le premier index comme une autre vue de collection.


1 commentaires

Pourriez-vous élaborer un peu plus si cela ne vous dérange pas?



0
votes

semble que vous souhaitiez ajouter deux vues de collecte, l'une est pour la partie supérieure horizontale et la valeur inférieure est verticale

  • Ajouter deux vues de collecte dans le storyboard, donnez le premier A Hauteur statique, prise de sortie du storyboard et donnez le nom de sortie quelque chose comme UpperCollectionview et BASSECollectionview

  • Définissez la source de déléguée et de données vers la collectionviews xxx

    dans le cas de toutes les méthodes de délégation, implémentez les visions collectives utilisant si - ele méthode xxx P> Si vous ressemblez à un complexe, je vous suggérerai de vous scinder, la partie supérieure de la visiteuse parent et une partie inférieure dans une vue de conteneur.

    Si vous souhaitez faire défiler le tout comme un défilement de tableView, ajoutez tout cela sur un Uiscrollview , cela gérera le défilement.


2 commentaires

Le supérieur sera-t-il fixé? Je veux toujours faire défiler avec toute la vue.


Ensuite, vous ajoutez une vue de défilement comme base, puis configurez le tout sur cette



0
votes

Si vous me demandez que je suggérerais une vue de table avec 2 cellules, la cellule du poing est pour la vue de collecte et la deuxième cellule est votre cellule normale. De cette façon, vous pouvez faire défiler dans les deux sens. Mais si vous souhaitez utiliser la collectionView, alors vous devez ajouter une balise pour la vue de la collection et la configurer en fonction de votre balise I.E

func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
if collectionView.tag == 1 {
// your horizantal collection view
} else {
//vertical one
}


2 commentaires

Donc, la seule façon de l'obtenir pour faire défiler les deux directions est d'ajouter une vue de table avec 2 cellules? Ajoutez ensuite les vues de la collection dans chaque cellule de vue de la table?


Je dis que c'est une autre façon. pas le seul moyen. J'utilise cela depuis longtemps et ça marche parfait