gpt4 book ai didi

ios - 控制 contentOffset 的 scrollView 中间动画

转载 作者:可可西里 更新时间:2023-11-01 01:42:58 25 4
gpt4 key购买 nike

当我点击我的 scrollView 时,它会激活一个 UITapGestureRecognizer,它会为 contentOffset 设置动画约 2 秒。我如何允许用户在拖动时中断动画并再次完全控制 scrollView?现在,用户必须等到动画结束才能再次开始与 scrollView 交互。

注意:self 指的是scrollView

点击设置:

let singleTap = UITapGestureRecognizer(target: self, action: "subtleBounce:")
singleTap.cancelsTouchesInView = false
self.addGestureRecognizer(singleTap)

所以当用户点击时:

func subtleBounce(gesture : UITapGestureRecognizer) {
let originalFrame = self.frame

UIView.animateWithDuration(0.1, delay: 0.0, usingSpringWithDamping: 1.5, initialSpringVelocity: 1.5, options: UIViewAnimationOptions.CurveLinear, animations: {
self.contentOffset.y -= 10.0

}, completion: {
Void in
UIView.animateWithDuration(0.6, delay: 0.0, usingSpringWithDamping: 0.1, initialSpringVelocity: 3.0, options: UIViewAnimationOptions.CurveLinear, animations: {
self.contentOffset.y += 10.0 }, completion: { Void in

})
})
}

所以上面的代码按预期工作。

这是我试图停止动画并再次让用户控制 scrollView 的方法:

let drag = UISwipeGestureRecognizer(target: self, action: "stopScrollAnimation:")
drag.cancelsTouchesInView = false
self.addGestureRecognizer(drag)

和其他地方:

func stopScrollAnimation(gesture : UISwipeGestureRecognizer) {
self.layer.removeAllAnimations()
self.setContentOffset(CGPoint(x: 0.0, y: 0.0), animated: false)
}

然而,这并没有按预期工作。动画仍然控制着 scrollView,用户不能与之交互。

如果您想了解我的意思,请查看 iOS7/8 锁屏。点击屏幕后,它还会启动动画。但是,用户可以控制 scrollView 中间动画。

编辑:接受 swift 或 obj-c 中的答案。

最佳答案

添加AllowUserInteraction到你的动画选项。

关于ios - 控制 contentOffset 的 scrollView 中间动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27604965/

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