سؤال

لقد حصلت على 2 واجهة المستخدم الرسومية و 2 وحدات تحكم 1 تسمى Landscapeguicontroller والثاني يسمى Highguicontroller.

الآن عمومًا ، أدعو Highguicontroller ، وعندما أقوم بتدوير iPhone الخاص بي ، يكتشف ذلك ، ثم يظهر المناظر الطبيعية: الرمز:

    landscapeguicontroller *neu =[[landscapeguicontroller alloc] initWithNibName:nil bundle:nil];
    [self presentModalViewController:neu animated:YES];     
    [self dismissModalViewControllerAnimated:YES];

المشكلة هي أن الرسوم المتحركة تدفع النافذة الجديدة من الجانب الأبعد من iPhone إلى النافذة.

في المناظر الطبيعية ، أضفت إلى الأسطر التالية:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    return (interfaceOrientation == UIInterfaceOrientationPortrait);
}

عندما أريد العودة إلى Highguicontroller الذي أتصل به:

[self dismissModalViewControllerAnimated:YES];

هذا يعمل ، ولكن في الرسوم المتحركة الثانية ، أرى "الرسوم المتحركة" الصحيحة. هل لديك أي اقتراحات؟

لذلك وصف مشكلة قصيرة: في 1. الرسوم المتحركة من عالية إلى مشهد ، يتم دفع المشهد إلى النافذة ولكن في 2. الرسوم المتحركة من المناظر الطبيعية إلى عالية ، يبدو الدوران وكأنه دوران حقيقي ...

أريد أن يبدو 1. التشكيل مثل 2. الرسوم المتحركة

مع أطيب التحيات ploetzeneder

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

المحلول

لتجنب "المشكلة هي أن الرسوم المتحركة تدفع النافذة الجديدة من الجانب الأبعد من iPhone لأعلى إلى النافذة." ، حاول تعيين خاصية ModalTransitionStitionStitionStionStitions الخاصة بوحدة العرض 0 ، uimodaltransitionstylefliphorizontal ، uimodaltransitionstylecrossdissolve ،} uimodaltransitionstyle ؛

أيضًا ، إذا كنت ترغب في تجنب الدوران المتحرك ، فيمكنك تعيين طريقة ... هو - هي. راجع رمز عينة Apple "البديل" للحصول على مثال على ذلك.

تعكس الإخطارات الاتجاه المادي للجهاز ، ويمكنك استلامها ما إذا كانت الواجهة مسموحًا بالتغيير أم لا. (يمكنك إلقاء نظرة على خاصية حالة uiapplications للاطلاع على التوجه الذي يوجد فيه واجهة المستخدم).

نصائح أخرى

يبدو أنك تريد أن يسير التسلسل مثل هذا:

  1. قم بتدوير الجهاز جسديًا من صورة إلى المناظر الطبيعية
  2. تحريك عرض الصورة (highguicontroller) إلى المناظر الطبيعية
  3. ادفع منظر المناظر الطبيعية (landscapeguicontroller) من "القاع" الجديد للشاشة

إذا كان هذا صحيحًا ، فستحتاج إلى الحصول على شيء مثل ما يلي في highguicontroller التنفيذ:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
  return interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown;
}

سيؤدي هذا إلى الاهتمام بالخطوة 2 (سيقوم بتدوير عرض الصورة إلى المناظر الطبيعية في أي من الاتجاهين).

ثم ستحتاج إلى شيء مثل هذا:

- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
{
  if(fromInterfaceOrientation == UIInterfaceOrientationPortrait) {
    [self presentModalViewController:landscapeguicontroller animated:YES];
  }
  else {
    [self dismissModalViewControllerAnimated:YES];
  }
}

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

امل ان يساعد!

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