के अंदर सही फ्रेम प्राप्त करना पोर्ट्रेट और परिदृश्य अभिविन्यास में मेरे सबव्यूज़ में अलग-अलग लेआउट होते हैं। लेआउट पर्यवेक्षण के फ्रेम पर आधारित है, और यह छोटा नहीं है (ऑटोरेसाइजिंग स्प्रिंग्स और स्ट्रेट्स का उपयोग करके हासिल नहीं किया जा सकता है)।willRotateToInterfaceOrientation
समस्या यह है कि अगर मैं willRotateToInterfaceOrientation के दौरान उप दृश्यों के फ्रेम को बदल रहा हूं, तो एनीमेशन सही है, लेकिन फ्रेम सुपरव्यू अभी भी पुराने अभिविन्यास से फ्रेम है।
यदि मैं didRotateFromInterfaceOrientation के दौरान उप-दृश्य बदल रहा हूं, तो फ्रेम सुपरव्यू वास्तव में सही है, लेकिन फ्रेम परिवर्तन केवल घूर्णन एनीमेशन के बाद होता है और यह अच्छा नहीं लग रहा है।
अभिविन्यास बदलते समय उप दृश्यों के फ्रेम को बदलने का सही तरीका क्या है?
मैंने प्रत्येक समस्या में एक विधि लिखकर इस समस्या को हल किया जो फ्रेम परिवर्तन भाग को संभालेगा। मैं willRotateToInterfaceOrientation में पैरेंट व्यू का फ्रेम सेट करूंगा और फिर CGFrameMake फ़ंक्शन का उपयोग करके एक नया समान फ्रेम उत्पन्न करूंगा और इसे प्रत्येक सबव्यू में पास कर दूंगा। यह मेरे लिए काम किया .... जांचें कि यह सहायक है या नहीं। – Mohammad
मुझे आपका जवाब बिल्कुल समझ में नहीं आया। WillRotateToInterface में मुझे अभी भी superView के फ्रेम को नहीं पता है क्योंकि रोटेशन अभी तक नहीं हुआ है। यही समस्या है। – adamsiton
मैं सबव्यूज़ को घुमाने के लिए सुपरव्यू के फ्रेम का उपयोग नहीं करता हूं। मैं गणना करता हूं कि घूर्णन के बाद सुपरव्यू के फ्रेम के लिए मूल्य क्या होगा और फिर गणना के आधार पर एक नया सीजीआरईटी बनाएं और उसके बाद प्रत्येक सबव्यू के ऑरेंटेशन विधि को संभालने के लिए इसे पास करें। यदि आप गणना करने में सक्षम नहीं हैं कि रोटेशन के बाद सुपरव्यू के फ्रेम के लिए मूल्य क्या होगा तो ऊपर आपके लिए काम नहीं करेगा। – Mohammad