我正在制作一款使用全屏显示图片的应用。也像照片应用程序,我试图让导航栏,状态栏和标签栏在一定时间后或用户点击屏幕后淡出。我用UIView动画方法(即animateWithDuration)搞砸了一下,但意识到我需要使用Core Animation来完成我想做的事。
到目前为止,我正在搞乱核心动画,并遇到了一些我不确定如何解决的问题:
a)是否可以在动画开始之前延迟动画(不使用单独的线程)。
b)如何使用Core Animation使状态栏具有动画效果,因为我们无权访问状态栏视图/图层?
c)我应该如何停止动画,即如果用户在条形淡出时点击屏幕?我应该在猫交易中将它们组合在一起吗?
只关心人们在尝试完成这项任务时会采取什么方法。到目前为止,这就是我的全部内容:
CABasicAnimation *fader = [CABasicAnimation animationWithKeyPath:@"opacity"];
[fader setDuration:2.0];
[fader setFromValue:[NSNumber numberWithFloat:.75]];
[fader setToValue:[NSNumber numberWithFloat:0]];
[[[[self tabBarController] tabBar]layer]addAnimation: fader forKey:@"BigFade"];
CABasicAnimation *fader2 = [CABasicAnimation animationWithKeyPath:@"opacity"];
[fader2 setDuration:2.0];
[fader2 setFromValue:[NSNumber numberWithFloat:1]];
[fader2 setToValue:[NSNumber numberWithFloat:0]];
[[[[self navigationController] navigationBar]layer]addAnimation: fader2 forKey:@"BigFade2"];
答案 0 :(得分:3)
这里的代码几乎是照片应用程序中许多功能的复制品,在其中您可以看到如何使您的视图透明化并让它们在一定时间/用户点击后消失屏幕。 https://github.com/kirbyt/KTPhotoBrowser。
答案 1 :(得分:1)
为什么不使用
- (void)setToolbarHidden:(BOOL)hidden animated:(BOOL)animated
- (void)setStatusBarHidden:(BOOL)hidden withAnimation:(UIStatusBarAnimation)animation
- (void)setNavigationBarHidden:(BOOL)hidden animated:(BOOL)animated
有延迟吗?