我想制作一些带有动画持续时间的通知框。 这些框会(从顶部)向下滑动,直到覆盖状态栏和导航栏 (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/