2011-08-30 19 views
5

पर एक यादृच्छिक डिफ़ॉल्ट स्क्रीन जेनरेट करना Xcode के भीतर की जाने वाली किसी भी चीज में आईफोन ऐप लोड होने पर 'डिफ़ॉल्ट' और 'डिफ़ॉल्ट @ 2x' छवियां सेट कर रही हैं।आईओएस

क्या पीएनजी प्रारूप में प्रोजेक्ट में डाली गई कई डिफ़ॉल्ट स्क्रीनें संभव हैं और प्रत्येक बार ऐप लोड होने पर, उपयोग करने के लिए एक यादृच्छिक डिफ़ॉल्ट स्क्रीन चुनें?

+2

मैं एक और विशिष्ट प्रश्न सुझाता हूं: डिफ़ॉल्ट छवि को बदलने के लिए रनटाइम पर संभव है? यदि आप यादृच्छिकता जोड़ना तुच्छ हो सकते हैं, और आपके प्रश्न में इसे शामिल करना केवल उत्तर देना कठिन बनाता है। –

+0

मैं आपको प्रश्न पूछने की सराहना करता हूं। हालांकि, नीचे दिए गए उत्तर संतोषजनक साबित हुए। धन्यवाद –

+0

यह केवल दोस्ताना सलाह के रूप में था - अगर मैं अलगाव के रूप में बाहर आया तो मैं क्षमा चाहता हूं। मुझे लगता है कि आम तौर पर, सबसे आसान संभावित प्रश्न पूछने से अधिक और बेहतर उत्तर मिलेंगे, क्योंकि दूसरों के लिए यह समझना आसान है कि आप क्या पूछ रहे हैं (मैं शीर्षक के आधार पर कुछ अलग अपेक्षा कर रहा था)। –

उत्तर

8

आप Default.png को बदल नहीं सकते हैं। एक बार ऐप भेज दिया जाता है - यह "पत्थर में सेट" है। अगली रिलीज तक, वह है। कारण सरल है (और यही कारण है कि आप ऐप आइकन क्यों नहीं बदल सकते हैं)। ऐप का बंडल केवल पढ़ने के लिए है। इसे केवल इसलिए पढ़ा जाता है क्योंकि यह आपके द्वारा और सेब द्वारा हस्ताक्षरित है। बंडल की सामग्री को संशोधित करने से हस्ताक्षर अवैध हो जाएगा।

+0

उत्तर Eimantas के लिए धन्यवाद, मुझे बहुत संदेह है। मेरे अगले ऐप के लिए बस एक अच्छा विचार था, लेकिन मैं इसे विभिन्न तरीकों से लागू करूँगा। एक बार फिर धन्यवाद। –

1

ऐप के पुनर्निर्माण के बिना स्टार्टअप स्क्रीन को बदलने का कोई तरीका नहीं है। इसका नाम या तो जानकारी प्लिस्ट में हार्डकोड किया गया है या प्लिस्ट में कुछ भी सेट नहीं होने पर "Default.png" के डिफ़ॉल्ट मान पर सेट किया गया है।

के बाद से दोनों छवि फ़ाइल और plist फ़ाइल एप्लिकेशन के बंडल जो डिजिटल रूप से हस्ताक्षरित है अंदर हैं, भले ही आप उनमें से किसी को बदल सकता है (यदि आप के रूप में यह नहीं केवल पढ़ने के लिए है सकते हैं), अपने ऐप के हस्ताक्षर को अमान्य और गैर पर दुर्घटना होगा -जेलब्रोकन डिवाइस।

7

आप Info.plist में UILaunchImageFile संपत्ति की स्थापना, और फिर दस्तावेज़ फ़ोल्डर के लिए एक नई छवि लिख कर iOS की डिफ़ॉल्ट स्क्रीन (कम से कम पहले प्रक्षेपण के बाद) को बदल सकते हैं।

उदाहरण के लिए।

<key>UILaunchImageFile</key> 
<string>../Documents/NewDefault.png</string> 

फिर /Documents/NewDefault.png पर अपना यादृच्छिक स्पलैश लिखें।


लगता है मैं और अधिक आदेशात्मक होना है ... मैं सुझाव दे नहीं कर रहा हूँ आप रनटाइम पर अपने अनुप्रयोग बंडल में कुछ भी संशोधित, के रूप में कहा गया है, कि नहीं हो सकता है।

लेकिन क्योंकि /Documents फ़ोल्डर .app फ़ोल्डर के पास बैठता है, तो आप एक रिश्तेदार पथ के माध्यम से UILaunchImageFile सेट कर सकते हैं, और फिर पथ निर्दिष्ट किया है कि एप्लिकेशन रन पर एक फ़ाइल डाल दिया। हमने यह किया है, और यह काम करता है, इसलिए वोट कम करने से पहले, इसे स्वयं आज़माएं।

+1

क्या यह कोशिश की और जांच की गई है? जो मुझे पता है, इस फ़ाइल (info.plist) अभी भी पढ़ा गया है। – Jann

+0

हां हमने यह किया है। आप info.plist पर नहीं लिख रहे हैं, आप दस्तावेज़ फ़ोल्डर में लिख रहे हैं। –

+0

info.plist में लिखे बिना info.plist "" में UILaunchImageFile प्रॉपर्टी को ओवरराइड कर सकते हैं? – dklt