6
votes

Ajouter UIPAGEVIEWCONTROLLER dans l'application actuelle

J'ai une application dans l'état de travail dans lequel j'ai eu trois écrans 1,2,3 chacun de cet écran est associé à un uicollectionview créé de manière programmable maintenant je souhaite modifier la mise en œuvre actuelle. & Ajoutez ces vues de la collection à UipageViewControlers.

J'ai essayé de trouver de nombreux tutoriels liés à PagesViewController avec Collectionviews mais ne pouvait rien trouver. Quelqu'un peut-il m'aider à mettre en œuvre cela ou peut me donner une référence liée à cela.

J'ai également référé Ce tutoriel , mais malheur Pour moi: (


13 commentaires

Quel est le problème ? PageViewController se comporte comme n'importe quel autre UIViewController.


En fait, ce que je veux maintenant, c'est l'animation fournie par le contrôleur d'affichage de la page sur Swiping Gauche et Droite. Actuellement, je ne fais que créer et charger la vue de la collection dans ce contrôleur de vue, si je mettez en place que je pourrai obtenir cette animation.


Il suffit de placer la vue de la collection à l'intérieur de chaque page?


Pouvez-vous s'il vous plaît donner une référence pour que je puisse suivre ces étapes et atteindre mon objectif


Je pense que vous êtes impérieux, je ne connais pas votre configuration, mais une pageViewController affichera simplement un certain nombre de pages dans une vision de ScrollView - Ce que vous placez, il y a entièrement à vous - cela n'a pas d'importance si sa collectionView ou autre chose d'autre


@ PE60T0: Désolé de vous déranger à nouveau, mais je ne suis pas capable de le faire, peut-être que je suis trop confus. Pouvez-vous s'il vous plaît m'aider avec un exemple de code.


Pouvez-vous poster plus de détails sur ce que vous voulez faire exactement? Et un code de ce que vous avez jusqu'à présent.


Je veux juste que beaucoup d'aide que vous créez une application d'exemple contenant 3 vues de collection et intégrée à UipageViewController à Swift, repose-toi, je ferai.


AppCoda.com/uipageViewController-Tutorial-Intro


J'ai déjà vu ce pote mais j'en veux un qui montre des vues de collecte


Une vue de collection est juste une vue! Peu importe que ce que vous mettez dans chaque page.


Il suffit de suivre un de le Beaucoup Tutoriels sur < Code> UIPAGEVIEWCONTROLLER ET Là où ils insèrent l'affichage contrôleur / Affichage Insérer un uicollectionviewontroller / uicollectionview .


Pourquoi le vote en bas? Quelqu'un peut-il s'il vous plaît expliquer?


3 Réponses :


0
votes

J'ai rencontré une situation similaire récemment. Je ne pourrais jamais obtenir le Uicollectionview S pour fonctionner à la manière dont je les souhaite dans le uipageviewcontroller . J'ai également estimé que la mise en œuvre était trop complexe, nécessitant un contrôleur d'affichage séparé pour chaque uicollectionview . Je ne pensais pas que c'était approprié pour mon jeu de données.

Ma solution consistait à utiliser un seul uiviewcontroller avec un défilement horizontalement, paginé uicollectionview pour gérer la pagination. Ensuite, j'ai ajouté verticalement défilement uicollectionview s pour chaque page pour contenir mon contenu. J'ai également ajouté une superposition qui contenait un uipagecontrol qui a été nourri des données de position de défilement pour se moquer de l'indicateur de page. Ce contrôleur d'affichage de manière extrêmement simplifié à la relation source de données, était plus facile à personnaliser et a permis de contrôler davantage.

(Je posterais la source, mais le code appartient à mon employeur et j'ai utilisé des storyboards.)


0 commentaires

1
votes

Vous pouvez le faire par:

1) Sous-classement UIPAGEVIEWCONTROLLER CODE> ET CONFORMER AUX UIPAGEVIEWCONTROLLERDATASOURCE CODE> Protocole. La source de données indiquera à la pageViewController selon laquelle les contrôleurs d'affichage viendront ensuite ou avant la présentation du contrôleur de la vue actuel. P>

2) dans ViewDidLoad () code>, définissez le DataSource comme auto code> afin que les méthodes déléguées soient appelées. Aussi, appelez self.seviewControls ([CollectionViewController], direction: .forward, animé: true, achèvement: nil) code>. CollectionViewController Code> sera un tableau peuplé avec 1 contrôleur de vue de la collection (le premier contrôleur de vue présenté). P>

Exemple: P>

func pageViewController(pageViewController: UIPageViewController, viewControllerBeforeViewController viewController: UIViewController) -> UIViewController? {
    var index = viewController.view.tag

    if index == 0 {
        return nil
    }

    if index > 0 {
        index--
    }
    return collectionViewControllers[index] as? TestCollectionViewController
}

func pageViewController(pageViewController: UIPageViewController, viewControllerAfterViewController viewController: UIViewController) -> UIViewController? {
    var index = viewController.view.tag

    if index == 2 {
        return nil
    }

    if index < collectionViewControllers.count - 1 {
        index++
    }
    return collectionViewControllers[index] as? TestCollectionViewController
}


1 commentaires

Votre réponse est également bonne mais ne convient pas à moi, peut-être que cela peut aider une autre personne.



1
votes

Il suffit de suivre certaines de ces didacticiels de contrôleur, et lorsque vous arrivez au point d'instanciation des contrôleurs de la vue enfant, faites ces contrôleurs de la collection d'enfants. Tout comme dans votre exemple de tutoriel où il utilise uiimageview essayez de le remplacer par uicollectionviews & vous obtiendrez ce que vous voulez.

Dites-le si vous faites face à des difficultés. Codage heureux!


1 commentaires

Oh!!! Ya ... oui, cela semble fonctionner .... vous dérangera sûrement si je serai dans un problème. Merci btw. :)