ios طريقة الكمبيوتر - كيفية تغيير لون نص شريط الحالة في iOS 7




15 Answers

  1. قم بتعيين UIViewControllerBasedStatusBarAppearance إلى YES في الملف .plist.

  2. في viewDidLoad بإجراء [self setNeedsStatusBarAppearanceUpdate];

  3. أضف الطريقة التالية:

    - (UIStatusBarStyle)preferredStatusBarStyle
    { 
        return UIStatusBarStyleLightContent; 
    }
    

ملاحظة : هذا لا يعمل مع وحدات التحكم داخل UINavigationController ، يرجى الاطلاع على تعليق تايسون أدناه :)

Swift 3 - سيعمل هذا على وحدات تحكم داخل UINavigationController . أضف هذا الرمز داخل وحدة التحكم الخاصة بك.

// Preferred status bar style lightContent to use on dark background.
// Swift 3
override var preferredStatusBarStyle: UIStatusBarStyle {
    return .lightContent
}
العلوي البار

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




يمكنك القيام بذلك دون كتابة أي سطر من التعليمات البرمجية!
قم بما يلي لجعل لون شريط الحالة باللون الأبيض خلال التطبيق بالكامل

على ملفك plist المشروع :

  • نمط شريط الحالة: نمط Transparent black style (alpha of 0.5)
  • عرض مظهر شريط الحالة القائم على تحكم: NO
  • يتم إخفاء شريط الحالة في البداية: NO



بالنسبة لي ، لم يحدث شيء مع استخدام كل الأشياء في الإجابات الأخرى (ومن مصادر / وثائق أخرى). ما كان يساعد على تعيين نمط شريط التنقل إلى "أسود" في XIB. هذا غيرت النص إلى اللون الأبيض دون أي رمز على الإطلاق.




لا تحتاج إلى القيام بأي رمز لهذا

يجب إضافة "عرض مظهر شريط الحالة القائم على وحدة التحكم" في info.plist كما يلي:

& تعيين نوع القيمة الخاصة به إلى قيمة منطقية والقيمة بـ NO. ثم انقر فوق إعدادات المشروع ، ثم انقر فوق علامة التبويب عام وتحت معلومات النشر ، قم بتعيين نمط شريط الحالة المفضل على .Light كما يلي:

هذا هو.




يعمل هذا في Golden Master iOS 7 و Xcode 5 GM و iOS7 SDK الذي تم إصداره في 18 سبتمبر 2013 (على الأقل مع وحدة تحكم التنقل المخفية):

  1. قم بتعيين Info.plist إلى NO في Info.plist .

  2. في طريقة ViewDidLoad أو في أي مكان ، أين تريد تغيير نمط شريط الحالة: [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];




إذا كان لديك وحدة تحكم في التنقل المضمنة تم إنشاؤها عبر واجهة الباني ، تأكد من تعيين التالي في الفصل الذي يدير وحدة تحكم الملاحة الخاصة بك:

-(UIStatusBarStyle)preferredStatusBarStyle{ 
    return UIStatusBarStyleLightContent; 
} 

يجب أن يكون كل ما تحتاجه.




في AppDelegate.m ، أضف ما يلي.

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

} 

وفي ملف Plist ، اضبط ظهور "عرض شريط الحالة القائم على وحدة التحكم" على NO.




حسنا ، هذا حقا يعمل مثل قطعة من الكعكة بالنسبة لي.

انتقل إلى info.plist .

  1. تعيين View controller-based status bar appearance إلى NO
  2. قم بتعيين Status bar style إلى UIStatusBarStyleLightContent

ثم انتقل إلى تفويض التطبيق الخاص بك وألصقها في التعليمة البرمجية التالية حيث يمكنك تعيين Windows RootViewController الخاص بك.

#define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v)  ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending)

if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"7.0"))
{
    UIView *view=[[UIView alloc] initWithFrame:CGRectMake(0, 0,320, 20)];
    view.backgroundColor=[UIColor colorWithRed:0/255.0 green:0/255.0 blue:0/255.0 alpha:1.0];
    [self.window.rootViewController.view addSubview:view];
}

بنغو. انها تعمل بالنسبة لي.




يسمح iOS 7 لوحدات تحكم العرض الفردية بتحديد مظهر شريط الحالة ، كما هو موضح في وثائق مطور Apple:

يمنح نظام التشغيل iOS 7 وحدات التحكم في العرض القدرة على ضبط نمط شريط الحالة أثناء تشغيل التطبيق. من الطرق الجيدة لتغيير نمط شريط الحالة بشكل ديناميكي هو تنفيذ setNeedsStatusBarAppearanceUpdate ضمن كتلة الرسوم المتحركة - تحديث مظهر شريط الحالة وتعيين setNeedsStatusBarAppearanceUpdate .

يعد تعيين مظهر شريط الحالة على مستوى العالم عملية من خطوتين.

أولاً ، يجب أن تخبر نظام التشغيل iOS أنك لا تريد تعيين مظهر شريط الحالة على أساس كل عرض على حدة.

ثم تحتاج إلى تولي المسؤولية وتعيين نمط شريط الحالة العامة الجديد.

لتعطيل عنصر تحكم شريط حالة عرض كل مشاهدة ، ستحتاج إلى تعيين خاصية View controller-based status bar appearance في Info.plist .

افتح Project Navigator وحدد المشروع الخاص بتطبيق iOS الخاص بك ، ثم حدد علامة التبويب Info.

مرر الماوس فوق أحد الصفوف ، ثم انقر فوق علامة الجمع التي تظهر لإضافة خاصية جديدة إلى .plist .

أدخل View controller-based status bar appearance في حقل المفتاح ، ثم تأكد من تعيين حقل النوع إلى قيمة Boolean . أخيرًا ، أدخل NO في حقل القيمة.

لتعيين نمط عمومي لشريط الحالة ، قم بإضافة خاصية أخرى ضمن علامة التبويب معلومات بمفتاح Status bar style ، ونوع من String Opaque black style .

إليك مشاركة مدونة تحتوي على مزيد من التفاصيل وبعض نماذج التعليمات البرمجية:

http://codebleep.com/setting-the-status-bar-text-color-in-ios-7/




تم تحديث الرد للحصول على Xcode GMeed Seed:

  1. في Info.plist وضع View controller-based status bar appearance NO

  2. في المشروع ، حدد:

  3. في ViewDidLoad:

    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];




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

اعتمادًا على المكان الذي تحتاج فيه إلى نمط شريط الضوء ، يجب أن تضع في اعتبارك النقاط الثلاث التالية:

1) إذا كنت في حاجة إلى شريط الحالة في شاشة الإطلاق أو في أماكن أخرى ، حيث لا يمكنك التحكم فيه (وليس في وحدات التحكم في العرض ، بل بعض عناصر / لحظات التحكم في النظام مثل شاشة الإطلاق) ، فانتقل إلى إعدادات مشروعك

2) إذا كان لديك وحدة تحكم داخل وحدة تحكم في التنقل يمكنك تغييرها في أداة إنشاء الواجهة كما يلي:

أ) حدد شريط التنقل في وحدة التحكم في التنقل

ب) قم بتعيين نمط شريط التنقل إلى "أسود" ، لأن هذا يعني أن لديك خلفية سوداء - سوداء تحت شريط الحالة الخاص بك ، لذلك سيتم تعيين شريط الحالة إلى الأبيض

أو قم بذلك في الكود كما يلي

navigationController?.navigationBar.barStyle = UIBarStyle.Black

3) إذا كان لديك وحدة التحكم وحدها التي يجب أن يكون لها نمط شريط الحالة الخاص بها وأنها ليست مضمنة في بعض بنية الحاوية باعتبارها UINavigationController

قم بتعيين نمط شريط الحالة في التعليمات البرمجية لوحدة التحكم:




تم توثيق ذلك في دليل الانتقال إلى نظام التشغيل iOS 7 ، والذي تحتاج إلى معرف مطوّر برامج Apple للوصول إليه مباشرةً. المقتطفات ذات الصلة:

نظرًا لأن شريط الحالة شفاف ، يظهر العرض من خلاله. [...] استخدم ثابت UIStatusBarStyle لتحديد ما إذا كان محتوى شريط الحالة غامقًا أو فاتحًا:

يعرض UIStatusBarStyleDefault محتوى غامق. [...]

يعرض UIStatusBarStyleLightContent محتوى خفيف. يستخدم عندما يكون المحتوى المظلم خلف شريط الحالة.

من المحتمل أيضًا الاهتمام:

في iOS 7 ، يمكنك التحكم في نمط شريط الحالة من وحدة تحكم vew الفردية وتغييره أثناء تشغيل التطبيق. للاشتراك في هذا السلوك ، أضف مفتاح Info.plist ملف Info.plist لأحد التطبيقات Info.plist القيمة YES .

من المؤكد أنني أوصي بإلقاء نظرة على المستند ، والذي ، مرة أخرى ، يمكنك الوصول باستخدام معرف مطور Apple الخاص بك.




فعلت بعض الأشياء المختلفة ويعمل لي.

مع عدم وجود تغييرات في الشفرة ، أعددت ملف plist. لي على النحو التالي:

  • عرض مظهر شريط الحالة القائم على وحدة التحكم> NO
  • نمط شريط الحالة> UIStatusBarStyleLightContent (سلسلة بسيطة)

اتمني ان يكون مفيدا.

تصحيح

بالنسبة لكل وحدة تحكم في طريقة العرض ، أغيّر خاصية "المقاييس المحاكية" في "شريط الحالة" ، في لوحة العمل ، من "الاستدلال" إلى "المحتوى الخفيف"




دعني أعطيك إجابة كاملة عن سؤالك. تغيير لون نص شريط الحالة أمر سهل للغاية ، لكنه مربك قليلاً في iOS 7 خصيصًا للمبتدئين.

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

ثانيًا ، لن تجد خاصية UIViewControllerBasedStatusBarAppearance في مخططك ولكن بشكل افتراضي ليس هناك. يجب عليك إضافته بنفسك عن طريق النقر على الزر + ثم ضبطه على NO.

ios 7 شريط لون شريط الحالة

وأخيرًا ، عليك الانتقال إلى ملف AppDelegate.m وإضافة ما يلي في طريقة didFinishLaunchingWithOptions ، أضف السطر التالي:

     [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

سيؤدي ذلك إلى تغيير اللون إلى اللون الأبيض لكافة وحدات التحكم في العرض. أتمنى أن يساعدك هذا!




فقط لتلخيص ، قم بتحرير مشروع Info.plist وأضف:

View controller-based status bar appearance : NO

Status bar style : Opaque black style

أو إذا كان لديك مفتاح خام / قيمة خام

UIViewControllerBasedStatusBarAppearance : NO

UIStatusBarStyle : Opaque black style




Related