快速滚动时,自定义标题内容具有动画效果

时间:2019-05-30 05:08:05

标签: ios swift uitableview

我已经创建了自定义标题,但是我不知道如何在滚动时设置动画。

请检查下图,让我知道如何在滚动时设置动画。 Fotmob应用中的动画标题。

enter image description here

2 个答案:

答案 0 :(得分:0)

首先将标题视图添加为UIvVew,并在headerView下将UIScrollView或UITableView添加到屏幕截图,然后执行以下步骤。

enter image description here

  1. 为页眉视图(例如125)设置一个固定的高度约束,并将其附加到顶部,左侧和右侧。

  2. 使下面的UIScrollView使用所有可用空间,因此将其设置为零上,下,左和右约束。

  3. 将标头视图高度约束连接到ViewController以便具有以下功能:

     @IBOutlet var headerViewHeightConstraint: NSLayoutConstraint!
    
  4. 将UIScrollView委托设置为ViewController

  5. 声明两个属性以限制标题视图的最大和最小高度,例如狐狸示例:

    let headerViewMaxHeight: CGFloat = 125
    let headerViewMinHeight: CGFloat = 44 + UIApplication.shared.statusBarFrame.height
    
  6. 整个解决方法都是基于在UIScrollView滚动时更新标题视图高度约束,因此让我们实现UIScrollViewDelegate和本例中最重要的委托,scrollViewDidScroll:

    func scrollViewDidScroll(_ scrollView: UIScrollView) {
    
        let headerViewMinHeight: CGFloat = 44 + UIApplication.shared.statusBarFrame.height
    
        let yPos = mainScrollView.contentOffset.y
        let newHeaderViewHeight: CGFloat = headerViewHeightConstraint.constant - yPos
    
        if newHeaderViewHeight > headerViewMaxHeight {
            // Here, Manage Your Score Format View
            headerViewHeightConstraint.constant = max(headerViewMaxHeight, newHeaderViewHeight)
    
        } else if newHeaderViewHeight < headerViewMinHeight {
    
        headerViewHeightConstraint.constant = headerViewMinHeight
    
        } else {
    
            headerViewHeightConstraint.constant = newHeaderViewHeight
            scrollView.contentOffset.y = 0 // block scroll view
    
        }
    }
    

答案 1 :(得分:0)

我已经创建了相同的图片,请检查下图

MyFriendList

概述

  1. TableView
  2. 样本MVVM模式
  3. Swift 5.0以上
  4. 上面的Xcode 11

找到代码的GIT URL

HeaderAnimation