سؤال

أنا أستخدم موقفًا نموذجيًا مع UinavigationController ، معرف يحب أن يجعل شريط التنقل أطول قليلاً. لا يبدو أن ضبط حدوده والإطار يحدث فرقًا ، فأنا أستخدم هذا الرمز

    //set up the navigation
UINavigationController *navigationController = [UINavigationController new];

[navigationController.navigationBar setBarStyle:UIBarStyleBlack];
[navigationController.navigationBar setTintColor:[UIColor purpleColor]];
[navigationController.navigationBar setBounds:CGRectMake(0.0, 0.0, 480.0, 100.0)];
[navigationController.navigationBar setFrame:CGRectMake(0.0, 0.0, 480.0, 100.0)];

ولكن دون جدوى. أيه أفكار؟

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

المحلول

لا أعتقد أنه يمكنك تغيير ارتفاع شريط التنقل. إلا عند إضافة رسالة سريعة ... ولكن هذا ليس ما تريد.

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

تحرير: النظر إلى الكود الخاص بك ، ما هو [UinavigationController جديد]؟ يجب أن تفعل [[uinavigationController init] init] ، أليس كذلك؟

أيضا ، ما تفعله ليس فئة فرعية حقا ...

نصائح أخرى

في وقت عام 2009 ، ربما لا توجد طريقة لتغيير ارتفاع UinavigationController. ومع ذلك ، في iOS SDK 4.3 ، هناك طريقة (اختراق).

لتغيير ارتفاع uinavigationcontroller ، قم بتغيير حجم الإطار في viewWillAppear:animated: وظيفة. بعد ذلك ، سيبقى الارتفاع مخصصًا في جميع أنحاء التطبيق بالكامل.

بقدر ما أعرف أنه لا ينبغي تغيير ارتفاع شريط التنقل القياسي.

"على وجه التحديد ، لا بأس في تعديل خصائص barstyle و tintcolor و spraptients ، ولكن يجب ألا تقوم أبدًا بتغيير الخصائص على مستوى Uiview مباشرة مثل الإطار أو الحدود أو ألفا أو خصائص مخفية مباشرة."

إذا كنت ترغب في تخصيص ظهور شريط التنقل ، فيمكنك استخدام وكيل المظهر [uinavigationbar "في iOS 5

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