Swift:如何在滚动视图中向上滚动时缩放图像
问题描述:
我试图在滚动屏幕顶部的scrollView时缩放图像视图。这里是我的代码:Swift:如何在滚动视图中向上滚动时缩放图像
func scrollViewDidScroll(_ scrollView: UIScrollView) {
let offset = scrollView.contentOffset.y
if (offset <= 0) {
let ratio: CGFloat = -offset*1.0/UIScreen.main.bounds.height
self.coverImageView.transform = CGAffineTransform(scaleX: 1.0 + ratio, y: 1.0 + ratio)
}
}
此缩放图像,我向上滚动,而是因为我还滚动了起来,我认为出现故障,并显示图像背后的白色背景,因为它扩大。我如何防止这种情况发生?
答
这听起来像一个滚动视图并不真正适合你正在尝试做什么。如何使用手势识别器呢?沿着这些路线的东西:
override func viewDidLoad() {
super.viewDidLoad()
coverImageView.isUserInteractionEnabled = true
let panGestureRecognizer = UIPanGestureRecognizer(target: self, action: #selector(didPan))
coverImageView.addGestureRecognizer(panGestureRecognizer)
}
func didPan(panGestureRecognizer: UIPanGestureRecognizer) {
let translation = panGestureRecognizer.translation(in: coverImageView)
if translation.y > 0 {
let zoomRatio = (translation.y * 0.1) + 1.0
coverImageView.transform = CGAffineTransform(scaleX: zoomRatio, y: zoomRatio)
}
}
你必须玩得到它的行为完全你怎么想,但它应该足以让你开始。