gpt4 book ai didi

ios - ImageView 向下滚动时缩放

转载 作者:搜寻专家 更新时间:2023-10-31 21:50:07 24 4
gpt4 key购买 nike

如何在向下滚动时使用 autolayout 简单地缩放 imageView

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

我只想使用一个 scrollView 和一个可以根据 scrollView 位置调整大小的 header ImageView

最佳答案

一步一步:

1 - 打开 Storyboard并在顶部添加一个具有这些约束的 ImageView (选择您的纵横比):

enter image description here

2 - 为您的 uiimage 选择 aspectFill 模式和 clipSubviews

3 - 在您的 viewController 顶部添加一个 UIScrollView,其中包含一个 subview 。关于 scrollView 自动布局的所有细节:http://natashatherobot.com/ios-autolayout-scrollview/

4 - 然后在代码中引用您的 imageView 和 scrollView。

5 - 在 vi​​ewDidLoad 中,插入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 - 然后构建并运行。

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

也许有更好的解决方案,但这个可行。享受

关于ios - ImageView 向下滚动时缩放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33481928/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com