2017-10-01 1 views
0

다음 콜렉션 뷰가 있습니다. 사용자가 뷰를 위로 스크롤하면 콜렉션 뷰가 맨 위로 향하게됩니다. 마찬가지로 스크롤을 아래로 내리면 원래 위치로 되돌아 가고 싶습니다.스크롤 컬렉션보기 맨 위로

나는 collectionview 위에 uiview 및 imageView가 있습니다. 이것이의 tableview를했다면

enter image description here

이제, 내가 헤더를 사용하는 것입니다. 이 행동을 어떻게 성취합니까? 나는 아이디어에서 벗어났다. 사전에

덕분에

답변

0

UICollectionViewUIScrollView의 하위 클래스 그래서 당신은 그냥있는 ScrollView delegate 방법과 UICollectionView에 따라 당신의 UIViewUIImageView의 제약입니다 원하는 것을 달성 할 수있다.

여기서는 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() 
       } 
      } 
     } 
    } 

희망이 도움이됩니다.

+0

답변 해 주셔서 감사합니다. 명확히하기 위해,'constTopTagHeight'는 제가 맨 위에있는 뷰입니다. 권리? 이것을 scrollview에 적용하면 내 topview 만 줄어들고 collectionView를 맨 위로 스크롤하지 않습니다. 내가 뭐 잘못하고 있니? –

+0

예 constTopTagHeight는 뷰 높이 상한제입니다. 위의 scrollview delagate 메소드에서 관리해야합니다. –

관련 문제