我正在尝试开发一个主屏幕,其中在Scrollview后面有一个UIImageView。我希望滚动视图在图像上滚动内容,并使图像以较慢的速度向上滚动(视差)。
我已经找到了很多使用tableview或scrollview标头的解决方案,但这不是我想要的。
我正在尝试模仿美联航移动应用中的类似行为,但似乎无法正确获取代码。
我在滚动视图的后面配置了UIImage View,我正在尝试使用解决方案here,但似乎在转换为Swift 4时遇到了麻烦。
有什么想法吗?
答案 0 :(得分:0)
基于我对一个非常相似的问题https://stackoverflow.com/a/46727061/1433612
的回答假设imageView是scrollView中的子视图,请使用UIScrollViewDelegate
方法scrollViewDidScroll
获取内容偏移量。您可以使用该内容偏移量将imageView
转换为所需的“效果”量。
extension ViewController: UIScrollViewDelegate {
public func scrollViewDidScroll(_ scrollView: UIScrollView) {
let offset = scrollView.contentOffset
if offset.y > 0.0 {
let parallaxFactor: CGFloat = 0.8
let prallaxedOffset = offset.y * parallaxFactor
let transform = CATransform3DTranslate(CATransform3DIdentity, 0, prallaxedOffset, 0)
imageView.layer.transform = transform
} else {
imageView.layer.transform = CATransform3DIdentity
}
}
}