标题在向上滚动时通过降低其高度而消失

header disappears by decreasing its height when scrolled up

提问人:Erhan Demirci 提问时间:10/19/2023 最后编辑:Erhan Demirci 更新时间:10/20/2023 访问量:23

问:

我希望当您滚动时,它不会通过降低 collectionview 上的高度来向下移动。

我希望它在我的应用程序中,就像在 YouTube 的 iOS 应用程序中一样,当向上滚动时,标题会通过降低其高度而消失。 视频:

https://youtu.be/Raz69tHhKdI

我写了这样的代码

extension TemplatesViewController{
    func showTagsPlaceHolder() {
        DispatchQueue.main.async { [self] in
            
            tagsPlaceHolderViewHeightAnchor.isActive = false
            tagsPlaceHolderViewHeightAnchor.constant = 120
            tagsPlaceHolderViewHeightAnchor.isActive = true
            //tagsPlaceholder.isHidden = false
          
            
            self.view.setNeedsLayout()
            UIView.animate(withDuration: 0.5) {
                tagsPlaceholder.alpha = 1
                self.view.layoutIfNeeded()
            }
            
        }
      
        
    }
    func hideTagsPlaceHolder() {
        DispatchQueue.main.async {[self] in
            
            tagsPlaceHolderViewHeightAnchor.isActive = false
            tagsPlaceHolderViewHeightAnchor.constant = 0
            tagsPlaceHolderViewHeightAnchor.isActive = true
            
            self.view.setNeedsLayout()
            UIView.animate(withDuration: 0.5) {
                tagsPlaceholder.alpha = 0
                self.view.layoutIfNeeded()
            }
            
        }
       
    }
    
   
    
    
    func scrollViewDidScroll(_ scrollView: UIScrollView) {
        
        let yOffset = scrollView.contentOffset.y
        let maxOffsetY = scrollView.contentSize.height - scrollView.frame.size.height;
        
        //refresh the table view but disable the bounce
        if yOffset < 0.0 || yOffset > maxOffsetY{
            return
         }
     
         if (self.lastContentOffset > yOffset) {
              // move up
              print("move up")
              showTagsPlaceHolder()
              //tagsPlaceHolderIsHidden = true
              
          }
          else if (self.lastContentOffset < yOffset) {
              // move down
              print("move down")
              hideTagsPlaceHolder()
              //tagsPlaceHolderIsHidden = false
             
          }
          self.lastContentOffset = yOffset
        
       }
    
}

唯一的问题是,当你向上滚动时,高度会逐渐降低,或者当你向下滚动时,高度会逐渐增加。它应该像 YouTube 一样流畅。我也在分享项目:项目文件

iOS UI视图 UIscrollView NSPlayConstraint UINivial

评论


答: 暂无答案