簡體   English   中英

如何使照片應用程序中的狀態,選項卡和導航欄動畫

[英]how to make status, tab and navigation bar animate like in the photos app

我正在創建一個使用全屏顯示圖片的應用程序。 也像照片應用程序,我試圖讓導航欄,狀態欄和標簽欄在一定時間后或用戶點擊屏幕后淡出。 我用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"];

這里的代碼幾乎是照片應用程序中許多功能的復制品,在其中你可以看到如何使你的視圖透明,並在一定時間/用戶點擊屏幕后讓它們消失。 https://github.com/kirbyt/KTP​​hotoBrowser

你為什么不用它

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

有延遲?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM