के साथ कस्टम आईओएस इंटरफेस अभिविन्यास परिवर्तन एनीमेशन मेरे पास एक आईपैड ऐप है और ओपनजीएल के साथ मुख्य दृश्य खींच रहा हूं और डिवाइस घुमाए जाने पर मैं अपना खुद का परिवर्तन एनिमेट करना चाहता हूं।ओपनजीएल
ध्यान दें कि यह ऐप केवल कभी-कभी आकर्षित होता है, यह लगातार एनिमेट नहीं होता है। इसके अलावा मेरा दृश्य एक (बहुत जटिल) 2 डी ड्राइंग है, न कि 3 डी। मैं सिर्फ डिवाइस प्रतिरोधी परिवर्तन के दौरान प्रदर्शन केंद्र के चारों ओर घूमना चाहता हूं, सही पहलू अनुपात को बनाए रखना चाहता हूं। ओपन
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
// nothing yet
}
- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
{
IMMainView *mv = (IMMainView *)self.view;
[mv createRenderbuffer];
[mv drawView];
}
मैं सिर्फ फिर से बनाने के लिए नए चौड़ाई और ऊंचाई मैच के लिए एक बार रोटेशन पूरा करता बफर प्रस्तुत करना:
पल मैं बस निम्नलिखित कोड है पर।
डिफ़ॉल्ट आईओएस व्यवहार दृश्य को घुमाता प्रतीत होता है लेकिन पहलू अनुपात में परिवर्तन के रूप में इसे अजीब रूप से फैलाता है।
मैं संक्रमण के दौरान कुछ बेहतर प्रदर्शन करने के लिए अपने ड्राइंग पैरामीटर को एनिमेट कर सकता हूं, लेकिन मुझे समझ में नहीं आता है (1) आईओएस को मेरी परत को एनिमेट करने से कैसे रोकें और (2) इन विधि कॉल से एनीमेशन लूप कैसे सेट करें जो आईओएस एनीमेशन से मेल खाता है।
उदाहरण के लिए, एनीमेशन के दौरान, वास्तविक दृश्य चौड़ाई और ऊंचाई क्रमशः बदल रही है?
इसके अलावा संभावित रूप से समस्या यह है कि रेंडर बफर को फिर से बनाने के लिए सवाल क्यों है, क्योंकि यदि ओपनजीएल बफर आईओएस व्यू सीमाओं से मेल नहीं खाता है तो पिक्सेल पहलू अनुपात सही नहीं हैं और ड्राइंग खराब दिखती है।
किसी भी मदद की सराहना की जाएगी।
ठीक है मुझे लगता है कि मैं अपने प्रश्न के उत्तर का हिस्सा समझता हूं, अर्थात् मुझे डिफ़ॉल्ट मामले में दिखाए गए ओवर-राइड पर अभिविन्यास परिवर्तन के दौरान रेंडर बफर प्रस्तुत करना होगा। फिलहाल मैं केवल तब प्रस्तुत करता हूं जब मुझे यूआई परिवर्तन के आधार पर दृश्य सामग्री को बदलने की आवश्यकता होती है। – Robotbugs