[ios] लैंडस्केप मोड, 2008 सिस्टम में आईफोन ऐप



3 Answers

ऐप्पल देव साइट से:

लैंडस्केप मोड में अपना एप्लिकेशन शुरू करने के लिए ताकि स्टेटस बार तत्काल उचित स्थिति में हो, तो लिस्टिंग 2 में दिखाए गए अनुसार उचित मूल्य (UIInterfaceOrientationLandscapeRight या UIInterfaceOrientationLandscapeLeft) के साथ UIInterfaceOrientation कुंजी जोड़ने के लिए अपनी Info.plist फ़ाइल को संपादित करें।

लिस्टिंग 2: लैंडस्केप मोड में अपना एप्लिकेशन शुरू करना

<key>UIInterfaceOrientation</key>
<string>UIInterfaceOrientationLandscapeRight</string>
Question

नोट: यह प्रश्न 2008 से है और अब केवल ऐतिहासिक रुचि है।

डिवाइस की स्थिति के बावजूद, शुरुआत से लैंडस्केप मोड में चलने वाला एक आईफोन एप्लिकेशन बनाने का सबसे अच्छा तरीका क्या है?

प्रोग्रामेटिक रूप से और इंटरफ़ेस बिल्डर दोनों का उपयोग करना।




मुझे आश्चर्य है कि कोई भी इस जवाब के साथ अभी तक नहीं आया है:

मेरे सभी परीक्षणों में जब एक मोडल व्यू कंट्रोलर को खारिज कर दिया जाता है तो माता-पिता दृश्य नियंत्रक के पसंदीदा अभिविन्यास सेट में shouldAutorotateToInterfaceOrientation AutorotateToInterfaceOrientation को UINavigationController के हिस्से के बावजूद भी सम्मानित किया जाता है। तो इसका समाधान सरल है:

एक पृष्ठभूमि के लिए UIImageView के साथ एक डमी UIViewController बनाएँ। छवि को default.png छवि पर सेट करें जो आपका ऐप स्टार्टअप पर उपयोग करता है।

जब viewWillAppear को आपके रूट व्यू कंट्रोलर में बुलाया जाता है, तो एनीमेशन के बिना डमी व्यू कंट्रोलर प्रस्तुत करें।

जब viewDidAppear को आपके डमी व्यू कंट्रोलर में बुलाया जाता है, तो एक अच्छा क्रॉस विघटित एनीमेशन के साथ व्यू कंट्रोलर को खारिज कर दें।

यह न केवल काम करता है, लेकिन यह अच्छा लगता है! बीटीडब्लू, सिर्फ स्पष्टीकरण के लिए मैं रूट व्यू कंट्रोलर का व्यू viewWillAppear इस तरह करता हूं:

- (void)viewWillAppear:(BOOL)animated
{
 if ( dummy != nil ) {
  [dummy setModalTransitionStyle:UIModalTransitionStyleCrossDissolve];
  [self presentModalViewController:dummy animated:NO];
  [dummy release];
  dummy = nil;
 }
...
}



सबसे पहले मैं info.plist में सेट

<key>UIInterfaceOrientation</key>
<string>UIInterfaceOrientationLandscapeRight</string>

तो मैंने इस कोड को एप्लिकेशन में रखा हैडिफिनिश लॉन्चिंग:

CGAffineTransform rotate = CGAffineTransformMakeRotation(1.57079633);
[window setTransform:rotate];

CGRect contentRect = CGRectMake(0, 0, 480, 320); 
window.bounds = contentRect; 
[window setCenter:CGPointMake(160.0f, 240.0f)]; 

इस तरह मैं लैंडस्केप मोड में इंटरफ़ेस बिल्डर में दृश्य पर काम कर सकता हूं।




यह उत्तर देखें: केवल आईफोन या आईपैड के लिए लैंडस्केप मोड

  1. प्लेस्ट के लिए अभिविन्यास जोड़ें
  2. सभी फाइलों में चाहिएAutorotateToInterfaceOrientation = हाँ

यद्यपि यदि आप मिश्रित मोड का उपयोग कर रहे हैं, तो आप बेहतर हो सकते हैं

[[UIDevice currentDevice] setOrientation:UIInterfaceOrientationLandscapeRight];



Related