سؤال

ولدي فئة فرعية من UIViewController الذي يعالج UIView. يتم تقديم viewcontroller مشروط (أنه ينزلق صعودا من الجزء السفلي من الشاشة). في الجزء العلوي من وجهة النظر، ولقد أضافت شريط التنقل. لاحظ أنه لا يتم التعامل مع هذا الشريط بواسطة وحدة تحكم الملاحة.

واريد ان احصل على شريط تنقل إلى تقليص في الارتفاع عندما يدور بغية المشهد (على غرار كيف تتصرف عندما يتم التعامل معها من قبل UINavigationController). ومع ذلك، لا يمكن أن يحدد قناع autoresizing لارتفاع مرونة في IB، وذلك في التعليمات البرمجية يتسبب في نافبار أن تختفي تماما.

هل هناك طريقة للقيام بذلك؟ كيف يتم ذلك قبل UINavigationController؟

وP.S. وأود أن تفضل عدم الاضطرار إلى اللجوء إلى القياس تحويل، لأن هذا من شأنه خبط النص في العنوان.

وتحرير: أنا حلها مع القليل من المساعدة، وقراءة الجواب سجلت أقل

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

المحلول 2

ولقد وجدت الحل، وبعد فوات الأوان أشعر غبي نوعا ما. أود فقط أن تشمل الهامش السفلي مرونة في قناع تحجيم_تلقائي نافبار ل. يرجع الفضل إلى المستخدم RayNewbie في هذا الموضوع، والذي أشار لي إلى الحل:

http://discussions.apple.com/thread.jspa؟messageID=8295525

نصائح أخرى

وبدلا من أن يرد انها autoresizing قناع، لماذا لا تحقق فقط التوجه الحالي في viewWillAppear، وكذلك في didRotateFromInterfaceOrientation، وتعيين الإطار المناسب؟

- (void) updateNavBar {
    UIInterfaceOrientation orientation = [[UIApplication sharedApplication] statusBarOrientation];
    if ((UIInterfaceOrientationLandscapeLeft == orientation) ||
        (UIInterfaceOrientationLandscapeRight == orientation)) {
        myNavBar.frame = CGRectMake(0, 0, 480, 34);
    } else {
        myNavBar.frame = CGRectMake(0, 0, 320, 44);
    }
}
- (void) viewWillAppear {
    [self updateNavBar];
    // ... SNIP ...
}
- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation {
    [self updateNavBar];
    // ... SNIP ...
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top