向下滚动时ImageView缩放

我怎样才能简单地缩放autolayout与自动autolayout向下滚动?

尝试看视差效果,但不完全是我想要的。

我只想使用scrollView和一个标题ImageView谁可以resize取决于scrollView位置。

一步步:

1 – 打开故事板,并添加一个图像视图在这些约束顶部(select您的长宽比):

在这里输入图像说明

2 – 为您的uiimageselectaspectFill模式和clipSubviews

3 – 在你的viewController的顶部添加一个UIScrollView,里面有一个子视图。 有关scrollView的自动布局的所有细节: http ://natashatherobot.com/ios-autolayout-scrollview/

4 – 然后在您的代码中使您的imageView和scrollView的sockets引用。

5 – 在viewDidLoad中,插入self.automaticallyAdjustsScrollViewInsets = false并设置scrollView的contentInsets和contentOffset:

 class ViewController: UIViewController { @IBOutlet weak var scrollView: UIScrollView! @IBOutlet weak var imageView: UIImageView! override func viewDidLoad() { super.viewDidLoad() self.automaticallyAdjustsScrollViewInsets = false } override func viewDidLayoutSubviews() { super.viewDidLayoutSubviews() let imageHeight = imageView.frame.height let newOrigin = CGPoint(x: 0, y: -imageHeight) scrollView.contentOffset = newOrigin scrollView.contentInset = UIEdgeInsets(top: imageHeight, left: 0, bottom: 0, right: 0) } } 

6 – 将scrollviewDelegate添加到ViewController和scrollViewDidScroll方法来获取scrollView的位置

 class ViewController: UIViewController, UIScrollViewDelegate override func viewDidLoad() { super.viewDidLoad() scrollView.delegate = self self.automaticallyAdjustsScrollViewInsets = false } func scrollViewDidScroll(scrollView: UIScrollView) { let offsetY = scrollView.contentOffset.y if offsetY < 0 { imageView.frame.size.height = -offsetY } else { imageView.frame.size.height = imageView.frame.height } } 

7 – 然后build立和运行。

你可以在github上下载例子: https : //github.com/raphrel/scalingImageWhenScrollDown

也许有更好的解决scheme,但这个工程。 请享用