2012-10-24 16 views
5

tl; dr: यदि ऐप एक स्टेटस बार प्रदर्शित करता है, तो फ़ोटो लेने के दौरान आईपैड घूर्णन करते समय उपयोगकर्ता इंटरफ़ेस लेआउट टूट जाता है।रोटेशन के बाद UIImagePickerController के साथ स्टेटसबार और लेआउट समस्याएं

मुझे एक ऐप मिला है जो एक स्टेटस बार दिखाता है जिसे UIImagePickerController के माध्यम से फ़ोटो लेनी चाहिए।

मैं Xcode के साथ एक iPad 3 पर इस चल रहा हूँ, IOS 6 4.51

पहली समस्या मैंने देखा था कि अगर मैं करने के लिए कॉल करने से पहले के माध्यम से

[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone]; 

ले जाएँ नहीं था

[self presentViewController:imagePicker animated:YES completion:nil]; 

फिर UIImagePickerController स्क्रीन पर सही ढंग से नहीं दिखाया जाएगा। स्टेटस बार के लिए स्थान अभी भी आरक्षित होगा (लेकिन कोई समय या बैटरी जानकारी इत्यादि नहीं दिखाया गया है) जिसके परिणामस्वरूप स्क्रीन के निचले सिरे पर नियंत्रण आंशिक रूप से ऑफ़-स्क्रीन होगा।

तो, मैं UIImagePickerController और पहली समस्या हल किया गया था प्रस्तुत करने से पहले लाइन

[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone]; 

गयी।

अब दूसरी समस्या आती है (पहली समस्या के समाधान के कारण)। जब मैं UIImagePickerController लाता हूं, तो आईपैड घुमाएं और इसे बंद करें ("रद्द करें" या "उपयोग" के माध्यम से, कोई फर्क नहीं पड़ता), हैंडलर (या तो imagePickerControllerDidCancel या imagePickerController:didFinishPickingMediaWithInfo: कॉल किया जाता है, जिसमें मैं फिर से स्टेटस बार दिखाता हूं,

के माध्यम से
[[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationNone]; 

समस्या यह है कि स्थिति पट्टी वास्तव में दिखाया गया है अब है, लेकिन एप्लिकेशन के बाकी से अनजान हैं कि इसे फिर से स्क्रीन पर है। (UIToolbar मैं अपने "MainViewController" पर है कि हो रहा है आंशिक रूप से है स्टेटस बार के पीछे छिपा हुआ है।) दिलचस्प बात यह है कि, यदि मैं आईपैड को किसी अन्य ओरिएंटेशन पर घुमाता हूं तो एनीमेशन खत्म होने के बाद सभी ठीक से प्रदर्शित होते हैं।

क्या कोई मुझे हल करने के तरीके पर कोई सुझाव दे सकता है समस्या है? (वर्तमान में मेरे सबसे अच्छे काम के आसपास पहली बार किसी ने फोटो लेने के बाद छुपा स्टेटस बार छोड़ना होगा, लेकिन यह उप-इष्टतम है)। शायद पहली समस्या का एक बेहतर समाधान है, या शायद दोनों मुद्दों को हल करने के लिए एक विधि है।

अधिक जानकारी: UIImagePickerController सक्रिय होने पर आईपैड को परिदृश्य में घुमाने के बाद, यह मेरे मेन व्यू कंट्रोलर के व्यू फ्रेम का फ्रेम है: {{0, 0}, {1024, 768}} (यानी उस मामले में जहां मुसीबत)। जब मेरे पास हर समय लैंडस्केप ओरिएंटेशन में आईपैड होता है, तो यह UIImagePickerController के बाद मेनव्यू कंट्रोलर का व्यू फ्रेम खारिज कर दिया जाता है: {{0, 0}, {1024, 748}} (यह वह जगह है जहां कोई समस्या नहीं है।)

आपके ध्यान और प्रयास के लिए अग्रिम धन्यवाद!

उत्तर

3

मैं एक छवि पिकर प्रदर्शित करते समय आईफोन पर एक ही मुद्दे पर आया जो कैमरे से एक छवि लेता है। मुझे मिला समाधान मुझे स्टेटसबार दिखाने के लिए कॉल करना था जब छवि पिकर को पॉप अप करने वाला दृश्य फिर से दिखाई देगा। उदाहरण के लिए।

- (void)viewWillAppear:(BOOL)animated 
{ 
    [super viewWillAppear:animated]; 

    [[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationSlide]; 
} 
+0

धन्यवाद, यह पहले से ही समाधान का हिस्सा है। छवि पिकर छोड़ने के बाद अब ऐप सही दिखता है।लेकिन अब एक नई समस्या है: जब मैं डिवाइस को घुमाने के बाद स्थिति बार सही स्थिति (शीर्ष) पर कूदता हूं लेकिन मेरा बाकी ऐप घूमता नहीं है और किनारे पर रहता है ... क्या आपने उस समस्या को भी हल किया? –

+0

मेरा ऐप केवल चित्र है इसलिए मैं इस समस्या से नहीं आया। यदि आपको कोई समाधान मिल रहा है, तो इसे यहां देखने के लिए यहां पोस्ट करें। – Firefly

+0

बिल्कुल काम नहीं करते हैं – user2159978

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