快速创建弹性标题

时间:2016-08-19 20:32:29

标签: ios swift cocoa-touch uiview uicollectionview

我有一个UICollectionView,标题为UIView

我希望当用户向下滚动时,标题将被伸展,并具有弹性标题效果。

我试过这段代码:

func scrollViewDidScroll(scrollView: UIScrollView) {
    if scrollView.contentOffset.y < 0 {
        self.backgroundImageView?.frame.size.height += -scrollView.contentOffset.y
        self.backgroundImageView?.frame.size.width += -scrollView.contentOffset.y
    } 
}

但它有两个问题:

  • 当滚动开始时,图像不再位于中心(我保持0x 0y原点)

  • 即使在触摸时(或向上滚动)并且没有恢复到原始尺寸,图像仍会保持尺寸。

任何人都可以帮我找到有用的代码吗?

1 个答案:

答案 0 :(得分:1)

如果您使用变换来更改图像的比例,您可能会得到您要查找的结果。

尝试这样的东西,您可能想要将scaleFactor调整为比率而不是原始值,但它将取决于您的布局。

func scrollViewDidScroll(scrollView: UIScrollView) {
    var scaleFactor:CGFloat = 0.0
    if scrollView.contentOffset.y < 0 {
        scaleFactor = -scrollView.contentOffset.y
    } else {
        scaleFactor = 1.0
    }
    self.backgroundImageView?.transform = CGAffineTransformMakeScale(scaleFactor, scaleFactor)
}