كيف تحصل على الحدود المتاحة داخل UITabBarController

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

  •  03-07-2019
  •  | 
  •  

سؤال

عند استخدام UITabBarController، كيف يمكنك الحصول على حجم شريط التبويب في القاع؟ بالمثل، كيف يمكنك أن تعرف كم لديك غرفة داخل الرؤية كلفه للمحتوى الخاص بك؟ أرى الكثير من الأمثلة من الناس التحجيم وجهات نظرهم الطفل Tab لل[[UIScreen mainScreen] applicationFrame]، والتي لا يمكن أن تكون صحيحة لأن شريط التبويب يستغرق بعض غرفة في الجزء السفلي من الشاشة.

وأيضا، هل من الممكن تعديل حجم شريط التبويب؟

والشكر ريان

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

المحلول

والسبب يمكنك استخدام applicationFrame هو أن UITabBarController تغيير حجم وجهات النظر subcontrollers لها، لذلك طالما وجهة نظركم يدعم ريسيزينج بشكل صحيح، فإنه سوف يعمل كل شيء.

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

CGFloat myViewHeight = tabBarController.view  .size.height
                     - tabBarController.tabBar.size.height;

نصائح أخرى

وقديم السؤال، ولكن على أي حال:

إذا كنت لا تحميل جهة نظركم من طرف مستدق، ضبط السيارات تغيير حجم الأعلام في ظائفها loadView الخاص بك؛ شيء من هذا القبيل:

self.view.autoresizingMask = UIViewAutoresizingFlexibleHeight |
                             UIViewAutoresizingFlexibleWidth;

إذا قمت بذلك، يمكنك استخدام [[UIScreen mainScreen] applicationFrame] لتحديد إطار وجهة نظرك؛ و سيتم تغيير حجمها تلقائيا إذا كان شريط التبويب موجودا.

إذا كان لديك NIB على وجهة نظرك، يتم تعيين autoresizingMask تلقائيا باستخدام واجهة البناء.

وماركوس

إذا يمكنك معرفة كيفية تغيير حجم UITabBar، ثم يمكنك تغيير حجم UITabBar على UITabBarController ل. يمكنك الوصول إلى الكائن من خلال اتخاذ

[[UITabBarController subviews] objectAtIndex:0]

ولكن ينصح في الوثائق التي لم يكن الوصول مباشرة إلى كائن.

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