2011-12-27 4 views
1

私はフルスクリーンを使って写真アプリのような画像を表示するアプリを作っています。また、写真アプリのように、私はナビゲーションバー、ステータスバー、およびタブバーが一定時間後に、またはユーザーが画面をタップした後にフェードアウトさせようとしています。私は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"]; 

答えて

3

ここのコードは、写真アプリの多くの機能のレプリカです。その中には、ビューを透過的にして一定の時間が経過した後に消えるようにする方法があります画面をタップします。 https://github.com/kirbyt/KTPhotoBrowser

1

なぜあなただ​​けの遅延で

- (void)setToolbarHidden:(BOOL)hidden animated:(BOOL)animated 
- (void)setStatusBarHidden:(BOOL)hidden withAnimation:(UIStatusBarAnimation)animation 
- (void)setNavigationBarHidden:(BOOL)hidden animated:(BOOL)animated 

使用していませんか?

関連する問題