2017-10-01 2 views
0

J'ai une vue de collection suivante. Lorsque l'utilisateur fait défiler la vue, je veux que la vue de la collection monte complètement. De même, quand il est défilé vers le bas, je veux qu'il revienne à sa position d'origine.Scroll Collection voir en haut

J'ai un uiview et imageView au-dessus de la collectionview.

enter image description here

Maintenant, si cela était un tableview, je l'aurais-tête utilisé. Comment puis-je atteindre cet objectif. Je n'ai plus d'idées.

Merci à l'avance

Répondre

0

UICollectionView est la sous-classe de UIScrollView afin que vous puissiez obtenir ce que vous voulez est juste par la méthode scrollview delegate et les contraintes de votre UIView et UIImageView sur la UICollectionView.

Ici, je vais vous donner un exemple pour y parvenir avec un délégué scrollview.

func scrollViewDidScroll(_ scrollView: UIScrollView) { 
     if scrollView == collectionView{ 
      if scrollView.contentOffset.y == 0{ 
       UIView.animate(withDuration: 0.5) {() -> Void in 
        self.constTopTagHeight.constant = 175 // Your UIView and imageview constraints adjust. 
        self.view.layoutIfNeeded() 
       } 
      } 
      else{ 
       UIView.animate(withDuration: 0.5) {() -> Void in 
        self.constTopTagHeight.constant = 0 // Your UIView and imageview constraints adjust. 
        self.view.layoutIfNeeded() 
       } 
      } 
     } 
    } 

Espérons que cela vous aide.

+0

Merci pour la réponse. Juste pour clarifier, 'constTopTagHeight' est la vue que j'ai en haut. Droite? Si j'applique ceci à la scrollview, c'est seulement shrinkiung mon topview et ne pas défiler la collectionVoir tout le chemin vers le haut. Est-ce que je fais quelque chose de mal? –

+0

Oui constTopTagHeight est la contrainte de hauteur de vue supérieure. Vous avez juste besoin de gérer cela dans la méthode ci-dessus scrollview delagate. –