Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/100.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios ForceTouch/Tap&;保持动画_Ios_Iphone_Swift_Animation_Uigesturerecognizer - Fatal编程技术网

Ios ForceTouch/Tap&;保持动画

Ios ForceTouch/Tap&;保持动画,ios,iphone,swift,animation,uigesturerecognizer,Ios,Iphone,Swift,Animation,Uigesturerecognizer,我有一个按钮,用户必须按住该按钮才能执行其操作 当用户最初触摸按钮时,动画应开始并更新给定视图的帧和颜色 当用户在一段时间(2秒)后仍按住按钮时,应识别长按并产生新动画 当用户释放按钮时,我们需要更新视图以重置其原始约束,并且: 如果未被识别:不做任何事情(目前) 如果识别:执行操作(取消隐藏视图) 我尝试了ui长按手势识别器,但在长按被识别之前,我没有获得状态 我尝试嵌套UIViewAnimations并使用view.layer.removeAllAnimations()停止它们,但一些动画没

我有一个按钮,用户必须按住该按钮才能执行其操作

当用户最初触摸按钮时,动画应开始并更新给定视图的帧和颜色

当用户在一段时间(2秒)后仍按住按钮时,应识别长按并产生新动画

当用户释放按钮时,我们需要更新视图以重置其原始约束,并且:

  • 如果未被识别:不做任何事情(目前)
  • 如果识别:执行操作(取消隐藏视图)
  • 我尝试了
    ui长按手势识别器
    ,但在长按被识别之前,我没有获得状态

    我尝试嵌套
    UIViewAnimations
    并使用
    view.layer.removeAllAnimations()
    停止它们,但一些动画没有被删除(我怀疑是回调循环)

    在苹果手表上创建的效果是我想在iphone应用程序上重新创建的:


    有人能给我指出正确的方向吗?

    我不能告诉你如何用swift来做,但我会这样做。按下按钮后,第一个动画开始。现在在第一部动画中,你设置了一个2秒计时器。使用(UILongPressGestureRecognitor,minimumPressDuration)设置标志(真/假)。在2秒后的第一个动画中,如果标志为真,则播放第二个动画(如果为假)。然后,您应该使用false标志执行进一步的操作