تدوير إلى المناظر الطبيعية للحصول على وجهات النظر المضافة إلى التسلسل الهرمي يدويًا (iPhone)

StackOverflow https://stackoverflow.com/questions/1940912

سؤال

لديّ UiviewController بسيط يستخدم XIB لواجهته.

على هذا النحو ، تشتمل الواجهة ببساطة على Uiview و UiActivityIndicator و uilabel. لديّ قيود التحجيم في مجموعة Builder للواجهة للحفاظ على مؤشر النشاط وتركزت التسمية عند تدوير العرض.

تم تعيين uiviewController لإرجاع نعم لتوجهات الصورة والمناظر الطبيعية في -shouldAutorotateToInterfaceOrientation: طريقة.

تتم إضافة العرض إلى التسلسل الهرمي للعرض يدويًا ، باستخدام

if (!activityOverlay)
    activityOverlay = [[XBActivityOverlayViewController alloc] initWithNibName:@"XBActivityOverlayViewController" bundle:nil message:@"Connecting..."];

[activityOverlay.view setAlpha:0.0f];
[self.window addSubview:activityOverlay.view];
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.3f];
[activityOverlay.view setAlpha:0.9f];
[UIView commitAnimations];

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

ما الذي يجب علي فعله لإضافة العرض في نفس الاتجاه مثل عرض الوالدين؟

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

المحلول

لا أعرف ما إذا كان هذا هو الإجابة الصحيحة على سؤالك ولكن آمل أن تساعد:

بالنسبة لي ، في كل مرة أقوم فيها بإضافة/رفض وسيط أو عرض عرض جديد ، تسمى الوظيفة التالية:

-(void) detectOrientation 
{


 if (([[UIDevice currentDevice] orientation] == UIDeviceOrientationLandscapeLeft) || 
     ([[UIDevice currentDevice] orientation] == UIDeviceOrientationLandscapeRight)) 
 {

             item1.frame = CGRectMake(147.0, 241.0, 56.0, 28.0);
     item2.frame = CGRectMake(265.0, 241.0, 56.0, 28.0);

 }
 else if (([[UIDevice currentDevice] orientation] == UIDeviceOrientationPortrait) ||
          ([[UIDevice currentDevice] orientation] == UIDeviceOrientationPortraitUpsideDown) || !inLandscapeOrientation)
 {

    item1.frame = CGRectMake(35.0, 425.0, 35.0, 28.0);
item2.frame = CGRectMake(176.0, 425.0, 35.0, 28.0);
 }

}

هنا أقوم بتغيير الموضع وفقًا لتوجيه الجهاز الحالي. ربما إذا اكتشفت أن الاتجاه الحالي هو المناظر الطبيعية ، فأنت تضيف عرضًا فرعيًا له مثل هذا الاتجاه.

أليخاندرا :)

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