当前位置: 首页 > 知识库问答 >
问题:

UILabel动画和手势

杨晟
2023-03-14

我想在我正在写的一个应用程序中取得效果,也许你能帮我。

视图层次结构在这一点上相当复杂,所以为了简单起见,让我们假设我有一个UILabel,其Alpha值设置为0。目前,我正在使用一个UILongPressGestureRecognitor,它在几秒钟后调用一个方法来更新UILabel的文本,并执行一个UIView动画块来很好地显示它(在1秒的时间内将Alpha设置回1——淡入)。

该块在新更新的标签中淡出,然后在其完成块中,在另一秒钟内淡出。

这是可以的,但是我真正想要的是在长按(比如3秒)后让标签淡出(通过UIView动画或其他方式)。然后在按压仍然有效的时候留在屏幕上,然后在触摸解除后一秒钟淡出。我如何才能达到这种效果?

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

感谢阅读,问候,

约翰

共有2个答案

公孙和怡
2023-03-14

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

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

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

- (void)handleLongPress:(UILongPressGestureRecognizer*)longPress
{
    if(longPress.state == UIGestureRecognizerStateEnded){
        //do what you want
        NSLog(@"%@", @"end");
    }
}
 类似资料:
  • 手动动画 timeOffset一个很有用的功能在于你可以它可以让你手动控制动画进程,通过设置speed为0,可以禁用动画的自动播放,然后来使用timeOffset来来回显示动画序列。这可以使得运用手势来手动控制动画变得很简单。 举个简单的例子:还是之前关门的动画,修改代码来用手势控制动画。我们给视图添加一个UIPanGestureRecognizer,然后用timeOffset左右摇晃。 因为在动

  • 我在iOS中动画我的UILabels时遇到了麻烦。我用这个线程作为参考(iOS标签或图像的动画移动),但它似乎对我不起作用。我还尝试了其他几个方法,它们也不起作用。 我只是想在设定的时间内将标签平稳地移动到另一个位置(我所说的平稳是指没有跳跃)。然而,当我测试它时,标签不会移动。这是我的密码。我已经把它缩短到了我认为可能存在的问题。因为除了动画之外,其他一切都很有效。 我的直觉告诉我,这是因为动画

  • 我正在MyUILabel上执行2个动画。MyUILable是从UILabel派生的自定义类,它实现了只绘制边框的drawRect方法。 这是我的动画代码: 在第一个动画开始时,一条灰色的线出现在我的标签的顶部边缘,并且在所有动画完成后仍然存在。我想提一下,这条线不是我的绘图实现的一部分,即使我的绘图是空的,它也会出现。标签也比最初小一点。 所附图片不成比例。 动画之前: 动画后: 猜猜为什么会这样

  • 我试图在三个步骤中一起动画两个UIView(一个UIImageView和一个UILabel): 0)两个视图都在屏幕的左上角 1)然后我改变帧(和标签字体大小,太)所以视图变得更大,在中心2)我再次改变帧(和标签字体大小,太)把两个视图放在boton的右上角。(这个aniamtion开始几秒钟后) 3)我从超级视图中删除两个视图。 UIImageView在每次动画后都是完美的。对于UILabel来

  • UILabel-AutomaticWriting 是带有自动绘制动画功能的 UILabel 类,其灵感来自于 Google 的 Trend-Hot 搜索。  

  • UILabel Copyable 是一个简单的 UILabel 类,它能将某些功能复制在 UILabel 上。 特性: 支持界面构建器 支持长按手势 允许启用/禁用复制功能 与项目中已经存在的所有UILabel对象一起使用