ios - iOS 上的动画持续时间

标签 ios uiviewanimation

我想制作一些带有动画持续时间的通知框。 这些框会(从顶部)向下滑动,直到覆盖状态栏和导航栏 (0.3s),保持静止并可见大约 2.4 秒,然后向上滑出屏幕 (0.3s)。

我大致是这样制作的:

notificationLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 320, 64)];
[UIView animateWithDuration:0.3 delay:2.4 options:UIViewAnimationOptionCurveLinear animations:^{notificationLabel.frame = CGRectMake(0,-64, 320, 64);} completion:nil];

这些代码有两个问题。首先,我无法在顶部栏上显示此通知标签的位置。如果我向下滚动,我应该向上滑动才能看到这个标签。我只想看到这个像导航栏。

其次,显示和隐藏通知标签不是准确的时间。 我怎样才能改变我的代码来解决这些问题?

请告诉我。谢谢。

最佳答案

我在导航\状态栏顶部显示通知的方式是将它添加到 keyWindow 中,如下所示:

[[UIApplication sharedApplication].keyWindow addSubview:notificationLabel];

然后为了按照您描述的方式对其进行动画处理:

notificationLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, -64, 320, 64)];
[UIView animateWithDuration:0.3 animations:^{
    notificationLabel.frame = CGRectMake(0, 0, 320, 64);
} completion:^(BOOL finished) {
    [UIView animateWithDuration:0.3 delay:2.4 options:UIViewAnimationOptionCurveLinear animations:^{
        notificationLabel.frame = CGRectMake(0, -64, 320, 64);
    } completion:nil];
}];

这不是很优雅,但已经晚了,这就是我能想到的:)

关于ios - iOS 上的动画持续时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21415392/

相关文章:

ios - 调整背景视频 - SWIFT

android - 你能从 LUA 为 iOS、Android、WP8 制作原生库吗?

ios - 使用自动布局更改 UIView 的宽度

ios - 将手势识别器添加到屏幕外的元素

ios - 如何将圆形蒙版添加到 UIImageview 并同时更改框架和中心?

ios - 地理推送通知取决于客户端下载应用程序的位置

ios - SwiftUI 在自定义 TextField 上切换事件/非事件线条颜色

ios - UIView 的动画退出

ios - Swift:让按钮工作

ios - 如何在 Swift 3 中向动画图像集添加淡入淡出?