سؤال

لدي مشكلة توجيه غريبة حقا. لدي تسلسل لوحدات تحكم عرض تحت وحدة تحكم الملاحة. واحد منهم يمكن أن يأخذ أي اتجاه. عندما أغادر الاتجاه، يجب أن استخدم Setorientation. الشيء المضحك هو الدوران يحدث حيث يحدث الانتقال إلى الصفحة التالية. هذا ليس عادة مشكلة باستثناء حالة واحدة - من UIDEVICESORIENTATRIATRAITUPSIDTOWN إلى عادي، مما يؤدي إلى ترحيل جميع أعلى العناصر المثبتة في أعلى الصفحة.

هناك ثلاث طرق أعتقد أنني أستطيع إصلاحها:

  1. منفصلة بطريقة أو بأخرى عن المكالمة الخاصة بي PushViewController (لذلك لا يحتاج العرض الجديد إلى الوجه)
  2. قم بتعيين العناصر الخاصة بي المراد ترسو في الجزء العلوي من الجهاز بطريقة أفضل (راجعت ويبدو أنها)
  3. إعادة تعيين البعد Y على العناصر الموجودة في طريقة تحميل ViewDIDID ولكن هذا يبدو خطأ.

إليك دفع عرض جديد على رمز المكدس:

[[UIDevice currentDevice] setOrientation:UIInterfaceOrientationPortrait]; 

ResultSelect_ViewController *resultSelect = [[ResultSelect_ViewController alloc] initWithNibName:@"ResultSelect" bundle:nil];
[self.navigationController pushViewController:resultSelect animated:YES];

يجد أي شخص آخر غريبا أن محاكاة لا يسمح لك باختبار رأسا على عقب إلى سلوك عمودي؟

هل كانت مفيدة؟

المحلول 3

الطريقة اللازمة لتجنب علة التناوب عند الدوران من رأسا على عقب إلى صورة لا تفعل ذلك. بدلا من ذلك، قم بتدوير مرتين توقف في منتصف الطريق (قل UIDeviceOrientationLandscapeRight). مسألة التوقيت هي عدم استخدام النوم ولكن بدلا من ذلك تنفيذ didRotateFromInterfaceOrientation وإطلاق الدوران الثاني (أو الدفع إلى الرأي التالي) في تلك المرحلة.

نصائح أخرى

فقط ملاحظة: بدأت Apple باستخدام محلل ثابت (ربما حتى ديناميكي) ومحلل كتل التطبيقات التي تستخدم الأساليب الخاصة (على سبيل المثال setOrientation:) من دخول المتجر. حدث لصديق لي الأسبوع الماضي.

هل حاولت بناء ضد iPhone OS 3.0 وتعتمد فقط على shouldRotateToInterfaceOrientation:ب يبدو أن السلوك ثابت (مقارنة بالتنفيذ في 2.x) و - على الأقل بالنسبة لي - هل الوظيفة.

عادة لن تدعم الاتجاه الصريح. يبدو أن هذا هو سلوك تطبيق Apple القياسي ومنطقي. حالة رأسا على عقب ليست مفيدة حقا ويمكن أن يسبب الارتباك للمستخدم.

كان لدينا مشكلة مماثلة حيث سترحيل الفرعيون لأعلى ولأسفل الرأي الرئيسي عند التقليب من خلال القضية رأسا على عقب. لقد توقفنا للتو على دعم رأسا على عقب وأن حل المشكلة أساسا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top