2017-03-16 79 views
5

在Snapchat應用程序中,當表格視圖被拖拽到重新加載時,狀態欄會更改阿爾法。更改狀態欄阿爾法

這是正常的狀態欄 This is the normal status bar

這是當表視圖拖累會發生什麼 enter image description here

如何在狀態欄阿爾法改變了嗎?框架如何改變?本來我認爲這是一個快照,但時鐘會像平時一樣變化。

回答

8

這應該淡出動畫做的伎倆:

/* Swift 3 */ 

let statusBarWindow = UIApplication.shared.value(forKey: "statusBarWindow") as? UIWindow 
UIView.animate(withDuration: 2) { 
    statusBarWindow?.alpha = 0.2 
} 

/* Objective-C */ 

UIWindow *statusBarWindow = (UIWindow *)[[UIApplication sharedApplication] valueForKey:@"statusBarWindow"]; 
[UIView animateWithDuration:2.f 
       animations:^{ [statusBarWindow setAlpha:0.2]; } 
       completion:nil]; 

您還可以設置statusBarWindow的frame和移動它,你怎麼想。玩得開心;]

+0

你確定這是通過應用程序商店審查嗎?你有證據嗎? – lukwuerz

+1

Hi @lufritz!如果你關心私鑰,你可以嘗試創建2個子字符串並加入它們。做過一次,之後通過審覈,之前被一個字符串拒絕。沒有人會手動檢查你的代碼,分析器不會檢查所有可能的組合。該項目在NDA之下,因此無法向您展示。附:當沒有別的方法時,我只用了幾次私人課程/密鑰,而客戶希望儘快完成某些任務。在生產中做這些東西是不安全的。 –

0

它們很可能是抓住狀態欄所在的窗口並對其進行動畫處理,或者它們將狀態欄上方的窗口放置在視圖上並對其進行動畫處理。我沒有應用程序來檢查,但它必須是這兩種方法之一。要在狀態欄上方放置一個窗口,我認爲它是window.windowLevel = UIWindowLevelStatusBar + 1,這樣它就會在狀態欄上方。如果他們抓住引用,則必須遍歷應用程序窗口才能找到它,並且我從來沒有試過找到狀態欄窗口,但我已經抓住了鍵盤窗口。如果時鐘確實被拉下來,那麼它可能是獲取狀態欄所在窗口的組合,並在上面添加一個窗口並將兩者都設置爲動畫。 Facebook抓住鍵盤窗口在Facebook Messenger中進行滾動。希望這可以幫助你。

編輯: 我找到了一個獲取狀態欄窗口here的例子。

此外,我會建議使用CAAnimations,並避免真正改變任何東西。只需使用動畫即可呈現該外觀。