0

我正在尝试在我正在编写的应用程序中实现效果,也许您可​​以提供帮助。

此时视图层次结构相当复杂,因此为简单起见,假设我有一个 UILabel,它的 Alpha 值设置为 0。目前我正在使用几秒钟后的 UILongPressGestureRecognizer,调用一个更新文本的方法UILabel 并执行 UIView Animation 块以很好地显示它(在 1 秒内将 Alpha 设置回 1 - 淡入)。

此块淡入新更新的标签,然后在它的完成块中淡出它在另一秒钟的过程中。

这没关系,但我真正想要的是让标签在长按(比如 3 秒)后淡入(通过 UIView 动画或其他方式)。然后在按下仍处于活动状态时留在屏幕上,然后在触摸解除后淡出一秒钟。我怎样才能达到这个效果?

我应该忘记手势识别器并转移到 UIView 动画块并将各种触摸向上触摸向下状态吗?

感谢阅读,问候,

约翰

4

2 回答 2

1

长按识别器将起作用,您只需要检查状态即可知道该怎么做。首次识别手势时,开始淡入。手势完成后,开始淡出,但使用允许您设置开始延迟的方法。

-  (void)handleLongPress:(UILongPressGestureRecognizer*)sender
{ 
    if (sender.state == UIGestureRecognizerStateEnded) {
        // fade out, delayed
    }
    else if (sender.state == UIGestureRecognizerStateBegan) {
        // fade in
    }
}
于 2013-06-18T07:46:47.277 回答
1

每个 UIGestureRecognizer 都有状态。处理长按时,只检查状态。

- (void)handleLongPress:(UILongPressGestureRecognizer*)longPress
{
    if(longPress.state == UIGestureRecognizerStateEnded){
        //do what you want
        NSLog(@"%@", @"end");
    }
}
于 2013-06-18T07:47:04.463 回答