2015-02-19 9 views
13

प्रश्न:
वहाँ एक Xcode 6 परियोजना के LaunchScreen.xib फ़ाइल 8.1+ iOS के लिए तैनात करने के लिए लक्षित भीतर कुछ भी चेतन करने के लिए तरीके हैं?मैं एक छवि एनिमेट कर सकते हैं iOS8 LaunchScreen.xib


प्रसंग:
मैं गतिविधि व्यक्त या उपयोगकर्ता जब वे प्रतीक्षा करने के लिए एक विकर्षण के रूप में सेवा करने के लिए सरल एनिमेशन बनाने के लिए देख रहा हूँ ...


उदाहरण:

  • एक लोडिंग बार
  • गतिविधि संकेतक
  • एनिमेटेड GIF
  • ले जाएँ स्क्रीन
  • भर में एक UIImage एक छवि घुमाएँ

उत्तर

25

नहीं।

लॉन्च छवि केवल उस अवधि के दौरान दिखायी जाती है जब उपयोगकर्ता आपका ऐप लॉन्च करना चुनता है और जब आपका ऐप वास्तव में चलना शुरू कर देता है। इस अवधि के दौरान, आपका ऐप एनीमेशन करने जैसी कोई कार्रवाई नहीं कर सकता - यह अभी तक नहीं चल रहा है। लॉन्च छवि सिर्फ एक स्थिर छवि है, जब अच्छी तरह डिज़ाइन की गई है, तो उपयोगकर्ता को यह इंप्रेशन देने में सहायता करता है कि आपका ऐप जल्दी से तैयार है।

(कुछ डेवलपर्स the HIG को अनदेखा करते हैं और एक स्प्लैश स्क्रीन प्रदान करने के लिए लॉन्च छवि का उपयोग करते हैं, कभी-कभी एनिमेटेड प्रस्तुति के साथ। लेकिन उन मामलों में, लॉन्च स्क्रीन अभी भी एक स्थिर छवि है, और ऐप एप शुरू होने के बाद होता है - यह सिर्फ यह है कि चल रहे ऐप द्वारा तैयार एनीमेशन का पहला फ्रेम स्थैतिक लॉन्च छवि की उपस्थिति से मेल खाता है।)

यह व्यवहार आईओएस 8 में लॉन्चस्क्रीन.एक्सिब सुविधा के साथ नहीं बदला गया - यह अभी भी दिखाई देता है ऐप वास्तव में चला रहा है, इसलिए यह अभी भी एक स्थिर छवि है। LaunchScreen.xib सुविधा क्या आपको कई अलग-अलग डिवाइस आकारों और शैलियों के लिए एक लॉन्च छवि का अनुकूलन करने की क्षमता प्रदान करती है, बिना किसी आकार/अभिविन्यास/आदि के लिए अलग-अलग छवियों को अलग-अलग डिज़ाइन, रेंडर और शिप करने के बिना।

यदि आपका ऐप वास्तव में नियंत्रण प्राप्त करने के समय उपयोग करने के लिए तैयार नहीं है, तो इस बारे में सोचें कि उस समय "लोडिंग" कार्य आप वास्तव में कर रहे हैं या नहीं, या यदि आप उपयोगकर्ता को दे सकते हैं कुछ चीजें तुरंत शुरू करें और पृष्ठभूमि थ्रेड पर अधिक सेटअप कार्य करें या इसे वास्तव में आवश्यक होने तक इसे स्थगित करें।

13

मैं अक्सर छप स्क्रीन का उपयोग नहीं है, लेकिन जब मैं करता हूँ, मैं उन्हें एक किताब की तरह खोलना चाहते हैं।

सब सच में, मैं छप स्क्रीन का एक बड़ा प्रशंसक नहीं हूँ और यहाँ तक कि एप्पल एक default.png कि नियंत्रण (कोई पाठ के साथ) से पता चलता आवेदन के उपयोग की अनुशंसा करता है कि निकट

प्रदर्शन एक प्रक्षेपण छवि आवेदन की पहली स्क्रीन जैसा दिखता है। यह अभ्यास आपके आवेदन के अनुमानित लॉन्च समय को कम करता है।

किसी विंडो या स्पलैश स्क्रीन को प्रदर्शित करने से बचें। आम तौर पर, किसी भी स्टार्टअप अनुभव प्रदान करने से बचने का प्रयास करें जो लोगों को आपके आवेदन का तुरंत उपयोग करने से रोकता है।

एचआईजी दिशानिर्देश

से

हालांकि, कुछ लोग उन्हें प्यार करते हैं और विशेष रूप से एक एप्लिकेशन एक अच्छा कार्यान्वयन स्प्लैश स्क्रीन है - पथ 2.0। जब आप पथ खोलते हैं, तो आपको ऐप्पल लिनन बनावट के एक लाल संस्करण पर उनके लोगो के साथ बधाई दी जाती है जो एक पुस्तक की तरह खुली एनिमेट करता है (या जर्नल जैसा कि पथ स्वयं को मानता है)। https://github.com/jaysonlane/OpenBook

आरंभ करने से पहले, मुझे एक त्याग के साथ इस प्रस्तावना करते हैं::

आप इस परियोजना के लिए यहाँ के लिए स्रोत प्राप्त कर सकते हैं मैं कोको में एनिमेशन के लिए बहुत नया हूँ तो मेरे साथ सहन। यदि आप अनावश्यक या अक्षम कोड को देखते हैं, तो कृपया एक टिप्पणी छोड़ दें और मैं इसे साफ कर दूंगा।

यदि आपने एनीमेशन नहीं देखा है, तो ऐप स्टोर पर हॉप करें और यह देखने के लिए एक प्रतिलिपि लें कि हम क्या हासिल करने की कोशिश कर रहे हैं। मैंने एक डिफ़ॉल्ट पीएनजी बनाया है जिसे हम चतुराई से शीर्षक वाले गणित का उपयोग कर सकते हैं (जैसे एक मठ पुस्तक जो खुलती है, है ना?) आप इसे यहां (रेटिना) और यहां डाउनलोड कर सकते हैं।

प्रारंभ करने के लिए, मुझे "ट्रिकरी" समझाएं जो हम करेंगे: हम अपने डिफ़ॉल्ट.png को प्रदर्शित करने के लिए सामान्य डिफ़ॉल्ट स्पलैश सिस्टम का उपयोग करने जा रहे हैं। ऐप प्रतिनिधि में, एप्लिकेशन लॉन्च होने के बाद, हम उसी डिफॉल्ट.png के हमारे दृश्य के शीर्ष पर UIImageView बनाने जा रहे हैं। इसके बाद हम अपने दृश्य को प्रकट करने के लिए खुले घुमाने के लिए UIImageView को एनिमेट करेंगे।

तो चलो चलते हैं:

कोई नया प्रोजेक्ट बनाएं, मैं एक ही दृश्य टेम्पलेट का उपयोग कर बनाया है, लेकिन यह जो कुछ भी साथ काम करेंगे। आगे बढ़ें और आपूर्ति की गई छवियों पर अपना डिफ़ॉल्ट.png और [email protected] सेट करें। आप बाईं ओर नेविगेशन फलक में परियोजना क्लिक करके ऐसा कर सकते हैं, लक्ष्य पर क्लिक करें और छवियों को लॉन्च करने के लिए नीचे स्क्रॉल:

अपने AppDelegate.m ओपन और आपके आवेदन didFinishLaunching या आवेदन didFinishLaunchingWithOptions समारोह के लिए निम्न कोड जोड़ें:

//1. add the image to the front of the view... 
UIImageView *splashImage = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)]; 
[splashImage setImage: [UIImage imageNamed:@"Default"]]; 
[self.window addSubview:splashImage]; 
[self.window bringSubviewToFront:splashImage]; 

//2. set an anchor point on the image view so it opens from the left 
splashImage.layer.anchorPoint = CGPointMake(0, 0.5); 

//reset the image view frame 
splashImage.frame = CGRectMake(0, 0, 320, 480); 

//3. animate the open 
[UIView animateWithDuration:1.0 
         delay:0.6 
        options:(UIViewAnimationCurveEaseOut) 
       animations:^{ 

        splashImage.layer.transform = CATransform3DRotate(CATransform3DIdentity, -M_PI_2, 0, 1, 0); 
       } completion:^(BOOL finished){ 

        //remove that imageview from the view 
        [splashImage removeFromSuperview]; 
       }]; 

तीन बातें यहाँ हो रही हैं ...

1) हम एक नए UIImageView बना सकते हैं और दृश्य 2 के शीर्ष में जोड़ने) हम इसे बनाने के लिए छवि की बाईं ओर स्थित एक लंगर बिंदु सेट बाईं ओर से खोलें और फिर फ्रेम को पूर्ण आकार में रीसेट करें डब्ल्यू 3) हम UIImageView को एनिमेट करते हैं और इसे पूरा करने के दृश्य से हटाते हैं

यही है, यह इतना आसान है।

स्रोत: http://jaysonlane.net/tech-blog/2012/03/path-2-0-style-animated-splash-screen-default-png/

+1

यह एक स्पलैश स्क्रीन ट्यूटोरियल का संदर्भ है ... मेरा प्रश्न विशिष्ट रूप से पूछताछ करता है कि क्या लॉन्चस्क्रीन.एक्सिब फ़ाइल के भीतर किसी भी चीज को एनिमेट करने के लिए लक्षित किया गया है, जिसे एक्सकोड 6 प्रोजेक्ट की प्रारंभिक लॉन्च छवि के स्थान पर उपयोग किया गया है आईओएस 8.1 या अधिक आईओएस संस्करण के लिए तैनाती ... – JThora

+0

आप इसे लिखने के लिए अच्छा प्रयास करते हैं। +1 – Cesare

0

आप LaunchScreen.xib बना सकते हैं और फिर एक परिपूर्ण प्रतिकृति है कि आप पर कोड डाल दिया और LaunchScreenAnimator की तरह एक वर्ग है कि आप अपने प्रतिनिधि के रूप में कॉल कर सकते हैं हो सकता है बना सकते हैं और है कि एक प्रतिनिधि जब एनीमेशन

खत्म हो गया है आपको बताने के लिए है
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 

    LaunchScreenAnimator *la=[LaunchScreenAnimator createWithDelegate:self]; 
    self.window.rootViewController=la; 
    [self.window makeKeyAndVisible]; 

    [la startAnimation]; 

    return YES; 
} 

-(void) splashAnimationFinished:(LaunchScreenAnimator*)view 
{ 
    [self startWithDashboardWindow]; // replace the current rootViewController with whatever you want 
} 
संबंधित मुद्दे