2017-03-16 14 views
5

स्नैपचैट ऐप में, स्टेटस बार अल्फा बदलता है जब तालिका दृश्य को पुनः लोड करने के लिए नीचे खींचा जाता है।बदलें स्टेटस बार अल्फा

यह सामान्य स्थिति पट्टी 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

हाय @ लुफ्रिट्ज! यदि आप निजी कुंजी के बारे में चिंतित हैं तो आप केवल 2 सबस्ट्रिंग बनाने और उनसे जुड़ने का प्रयास कर सकते हैं। एक बार स्ट्रिंग के साथ पहले अस्वीकार कर दिए जाने के बाद इसे एक बार किया और समीक्षा पास कर दी। कोई भी आपके कोड की मैन्युअल रूप से समीक्षा नहीं करेगा और विश्लेषक सभी संभावित संयोजनों की जांच नहीं करेगा। परियोजना एनडीए के तहत है इसलिए आपको नहीं दिखा सकती है। अनुलेख मैंने निजी कक्षाओं/चाबियों का उपयोग केवल कुछ बार किया है जब कोई अन्य रास्ता नहीं है और ग्राहक कुछ एएसएपी चाहता था। उत्पादन में ऐसी चीजें करने में असुरक्षित है। –

0

वे शायद स्टेटस बार में खिड़की को पकड़ने और एनिमेट करने की संभावना रखते हैं या वे स्टेटस बार के ऊपर एक विंडो को एक दृश्य और एनिमेटिंग के साथ रख रहे हैं। मेरे पास जांच करने के लिए ऐप नहीं है लेकिन यह इन दोनों विधियों में से एक होना चाहिए। स्टेटस बार के ऊपर एक विंडो रखने के लिए मुझे लगता है कि यह window.windowLevel = UIWindowLevelStatusBar + 1 है ताकि यह आपकी स्टेटस बार से ऊपर हो। यदि वे संदर्भ को पकड़ रहे हैं तो आपको इसे खोजने के लिए एप्लिकेशन विंडो के माध्यम से लूप करना होगा और मैंने कभी भी स्टेटसबार विंडो खोजने की कोशिश नहीं की है, लेकिन मैंने कीबोर्ड विंडो पकड़ ली है। यदि घड़ी को वास्तव में नीचे खींचा जा रहा है तो यह विंडो बार प्राप्त करने और दोनों विंडो को एनिमेट करने और विंडो को जोड़ने के संयोजन का संयोजन हो सकता है। फेसबुक मैसेंजर में इसे स्क्रॉल करने के लिए फेसबुक कीबोर्ड कुंजीपटल पकड़ लेता है। उम्मीद है कि यह आपकी मदद करता है।

संपादित करें: मुझे स्टेटस बार विंडो here प्राप्त करने का एक उदाहरण मिला।

इसके अलावा मैं CAAnimations का उपयोग करने और वास्तव में कुछ भी बदलने से बचने की सलाह दूंगा। उस उपस्थिति को देने के लिए बस एनिमेशन का उपयोग करें।

संबंधित मुद्दे