向下滚动时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,但这个工程。 请享用