UILabel动画和手势

时间:2013-06-18 07:39:53

标签: ios objective-c uiview uilabel

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

此时视图层次结构相当复杂,所以为了简单起见,我只想说我的UILabel的Alpha值设置为0。 目前我正在使用一个UILongPressGestureRecognizer,它在几秒钟后调用一个方法来更新UILabel的文本并执行一个UIView Animation块来很好地显示它(在1秒的过程中将Alpha设置为1 - 衰落它在)。

这个Block在新更新的标签中淡入淡出,然后在它的完成块中将其淡出一段时间。

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

我是否应该忘记手势识别器并移动到UIView动画块并使各种触摸触摸状态变为极点?

感谢阅读, 的问候,

约翰

2 个答案:

答案 0 :(得分:1)

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

-  (void)handleLongPress:(UILongPressGestureRecognizer*)sender
{ 
    if (sender.state == UIGestureRecognizerStateEnded) {
        // fade out, delayed
    }
    else if (sender.state == UIGestureRecognizerStateBegan) {
        // fade in
    }
}

答案 1 :(得分:1)

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

- (void)handleLongPress:(UILongPressGestureRecognizer*)longPress
{
    if(longPress.state == UIGestureRecognizerStateEnded){
        //do what you want
        NSLog(@"%@", @"end");
    }
}