UIScrollview反弹并使用固定顶部缩放

问题描述:

尝试在滚动视图弹起时使UIImageView缩放。UIScrollview反弹并使用固定顶部缩放

的想法是从这个dribbble被盗:https://dribbble.com/shots/3341878-Product-Page

正如你所看到的,图像是当滚动型的反弹下来like'a缩放。

在我的应用程序中,我有UIImageView里面的UIScrollview,我无法理解如何修复UIImageView的顶部,而UIScrolvview弹起。

这是我想做的事:

enter image description here

+0

检查这个URL之一:https://*.com/questions/33481928/imageview-scaling-when-scrolling -下 。可能是如果它有助于你的情况。 – Amit

根据滚动视图的偏移量对图像视图应用比例变换。类似的规定:

extension ViewController: UIScrollViewDelegate { 
    public func scrollViewDidScroll(_ scrollView: UIScrollView) { 
     let offset = scrollView.contentOffset 

     if offset.y < 0.0 { 
      var transform = CATransform3DTranslate(CATransform3DIdentity, 0, offset.y, 0) 
      let scaleFactor = 1 + (-1 * offset.y/(imageViewHeightConstraint.constant/2)) 
     transform = CATransform3DScale(transform, scaleFactor, scaleFactor, 1) 
      imageView.layer.transform = transform 
     } else { 
      imageView.layer.transform = CATransform3DIdentity 
     } 
    } 
} 

这样,你并不需要“修理”它到顶部,ImageView的只会扩大为内容偏移反弹时降低。所有你需要的是你的imageView有一个顶部的约束(加上领先,尾随)和高度。

+0

非常感谢,它的工作=) – KaronatoR

您可以通过将滚动视图上图中的“欺骗”,并在didScroll方法设置它的高度上你scrollviewdelegate(阅读内容偏移,并确定图像高度)。如果您将图像设置为纵横填充,则会产生您想要的效果。

+0

你认为这样做没有滞后吗? – KaronatoR

+0

是的,我们也是这样做的,它的功能就像一个魅力 – Simon

我建议您使用以下库

MXParallaxHeader

StrechyParallaxScrollView