cocoa touch - iPhone - UIView orientation changes -


मुझे UIView के एक उपवर्ग मिला है जिसमें मैं drawInRect: withFont: lineBreakMode: संरेखण का उपयोग कर एक NSString ऑब्जेक्ट खींचना है: विधि। दुर्भाग्य से, जब मैं डिवाइस की ओरिएंटेशन बदलता हूं, तो चित्र से लैंडस्केप मोड में कहें, पाठ को सही तरीके से दोबारा नहीं मिलता है, लेकिन मेरे इरादों के खिलाफ स्केल और विकृत हो जाता है।

कैसे मैं इस समस्या का समाधान कर सकता हूं?

यह कैसे कोर एनीमेशन संक्रमण को एनिमेट करता है । आपके दृश्य का एक स्नैपशॉट लिया जाता है, और फिर नए स्थान में फैला हुआ / स्थानांतरित हो जाता है।

आप इस से निपटने के कई तरीके हैं सबसे पहले आप यह कोशिश कर सकते हैं:

  self.contentMode = UIViewContentModeRedraw;  

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

  CGFloat stretchStartX = 25.0f; CGFloat stretchEndX = 30.0f; / * सामग्री खंड मूल्य 0.0-1.0 से, दृश्य सीमा * / self.contentStretch = CGRectMake के प्रतिशत के रूप में (stretchStartX / self.bounds.size.width, 0.0f, stretchEndX / self.bounds.size.width, 1.0 च);  

यह आपके दृश्य को केवल x मान 25 और 30 के बीच बढ़ाता है।


Comments