当滚动视图弹回时,尝试使UIImageView缩放。
这个想法是从这个运球中偷来的:https://dribbble.com/shots/3341878-Product-Page
正如您所看到的,图像就像滚动视图弹回时的缩放。
在我的应用程序中,我在UIScrollview中有UIImageView,在UIScrolvview弹回时,我无法理解如何修复UIImageView的顶部。
这是我想要做的:
答案 0 :(得分:9)
根据滚动视图的偏移量对您的imageView应用缩放变换。这些方面的东西:
extension ViewController: UIScrollViewDelegate {
public func scrollViewDidScroll(_ scrollView: UIScrollView) {
let offset = scrollView.contentOffset
if offset.y < 0.0 {
var transform = CATransform3DTranslate(CATransform3DIdentity, 0, offset.y, 0)
let scaleFactor = 1 + (-1 * offset.y / (imageViewHeightConstraint.constant / 2))
transform = CATransform3DScale(transform, scaleFactor, scaleFactor, 1)
imageView.layer.transform = transform
} else {
imageView.layer.transform = CATransform3DIdentity
}
}
}
通过这种方式,您无需将其“固定”到顶部,当弹跳时,imageView将随着内容偏移的减小而缩放。您所需要的只是您的imageView具有顶部约束(加上前导,尾随)和高度。
答案 1 :(得分:1)
答案 2 :(得分:0)
你可以欺骗&#39;将图像放在scrollview上方,并在scrollviewdelegate的didScroll方法中设置其高度(读取内容偏移量并确定图像高度)。如果将图像设置为宽高比填充,它将具有您想要的效果。