2010-01-22 11 views
5

मैं रोटेशन पर एक टन पढ़ रहा हूं, लेकिन मेरी क्वेरी का हल नहीं ढूंढ रहा हूं। यहां जाता है:आईफोन बल रोटेशन

मेरे पास मेरे टैब में एक टैबबार और छुपा नेविगेशन नियंत्रक के साथ एक पोर्ट्रेट एप्लिकेशन है। ऐप में एक बिंदु पर, अगला दृश्य परिदृश्य होना चाहिए।

एक्सआईबी लेआउट परिदृश्य में किया गया है, इसलिए मैं बिना किसी अनुवाद या पिक्सेल चलने वाले कोड के xib को लाना चाहता हूं। (यह सोचने की ज़रूरत नहीं है) मैंने दृश्य को धक्का देने की कोशिश की है (चित्र में बनी हुई है), विभिन्न विधियों का उपयोग करके दृश्य को स्थानांतरित करना (गैर रेखा को ठीक से प्रतीत नहीं होता)।

क्या यह देखने का कोई तरीका है कि इसे खोले जाने से पहले इसे पहले से ही परिदृश्य के लिए रखा गया है?

अग्रिम धन्यवाद!

+0

इस सवाल [यहां] का उत्तर नहीं मिलता [1] [1]: http://stackoverflow.com/questions/181780/is-there-a-documented-way-to-set -इ-आईफोन-ओरिएंटेशन –

+0

अधिक विशेष रूप से, उस प्रश्न पर 77-अपवॉट्स उत्तर देखें: http://stackoverflow.com/a/4915378/39974 - एक डमी व्यू कंट्रोलर को धक्का और पॉप करना कम से कम काम करना प्रतीत होता है और आईओएस 5.1 सहित। –

उत्तर

3

मैं सकारात्मक हूं कि आप एक रोटेशन को 'बल' नहीं दे सकते। सिस्टम डिवाइस के अभिविन्यास को बदलने का निर्णय लेता है; इसलिए 'अभिविन्यास' गुण अनिवार्य रूप से केवल पढ़ने के लिए हैं। मैंने बहुत समय पहले इसी समस्या को देखा था जब मैं यह सुनिश्चित करना चाहता था कि एक विशेष दृश्य हमेशा एक अभिविन्यास में प्रदर्शित होता है।

इसके कारण, अधिकांश ऐप्स अपने सभी विचारों को देखने और नियंत्रकों को ऐप का समर्थन करने वाले किसी भी उन्मुखता में काम करने की अनुमति देते हैं। मैंने पाया है कि कुछ विचारों के व्यवहार को प्रतिबंधित करने और नियंत्रकों को देखने के लिए अंततः अधिक परेशानी पैदा होती है, और विचारों और नियंत्रण नियंत्रकों के बीच संक्रमण करते समय समस्याएं पैदा हो सकती हैं।

आपके द्वारा पोस्ट किया गया कोड आपके दृश्य के लिए काम करेगा। आप वास्तव में उन्मुखीकरण को बिल्कुल बदल नहीं रहे हैं; आपका विचार बस व्यवहार कर रहा है जैसे इसे घूर्णन वाले फैशन में चित्रित करके घुमाया गया है। मुझे यकीन नहीं है कि क्या आप नेविगेशन बार में एक ही काम कर सकते हैं या नहीं, लेकिन यह एक शॉट के लायक है। यदि आप नेविगेशन बार के दृश्य गुणों को नियंत्रित करने में सक्षम हैं (यह एक UIView भी है), उसी कस्टम पैटर्न को लागू करने के लिए जो आप अपने कस्टम व्यू के लिए उपयोग कर रहे हैं, काम करना चाहिए।

अधिकांश ऐप्स जो केवल लैंडस्केप में देखने के लिए चाहते हैं, अंत में अपने पूरे ऐप को परिदृश्य में रहने के लिए मजबूर करते हैं। उदाहरण के लिए, फ्लाइट कंट्रोल केवल एक अभिविन्यास का समर्थन करता है। इस प्रकार, ड्राइंग कोड बहुत सरल है; अभिविन्यास के बावजूद, केवल दृश्य खींचें और इसे एक उन्मुखीकरण में घुमाएं जो इसे समर्थन करता है (या तो परिदृश्य बाएं या दाएं)।

आपके ऐप का डिज़ाइन इतना आसान नहीं होगा ... ऐसा लगता है कि आप एक पूर्ण-स्क्रीन ऐप डिज़ाइन नहीं कर रहे हैं। आपको नेविगेशन बार और स्टेटस बार के बारे में चिंता करने की ज़रूरत होगी।

+0

उत्कृष्ट बिंदु, मैंने उस परिप्रेक्ष्य से इसके बारे में सोचा नहीं था। –

7

मिले यह, इस कोड viewDidLoad में काम कर देता है:

self.view.transform = CGAffineTransformIdentity; 
self.view.transform = CGAffineTransformMakeRotation(degreesToRadian(90)); 
self.view.bounds = CGRectMake(0.0, 0.0, 460.0, 320.0); 

फिर भी 1 अजीब बात है। इससे कोई फर्क नहीं पड़ता कि नेविगेशन बार को छिपाने के लिए मैं क्या करता हूं, यह घूमता नहीं है, और दृश्य के बाईं तरफ रहता है।

[[self navigationController] setNavigationBarHidden:YES animated:NO]; 

क्या कोई इस व्यवहार को हल करता है और हल करता है?

संबंधित मुद्दे