ios - للاندرويد - طريقة اخفاء شريط الدوك السفلي في الايفون بدون جلبريك




كيفية تغيير لون نص شريط الحالة في iOS 7 (20)

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


  1. انتقل إلى Project -> Target ،

  2. ثم قم بتعيين Status Bar Style Light . يجعل شريط الحالة أبيض من شاشة الإطلاق.

  3. ثم قم بتعيين View controller-based status bar appearance يساوي NO في Info.plist .


  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
}

أنا أستخدم Xcode 6 beta 5 في مشروع Swift ، لتطبيق iOS 7.

هذا ما فعلته ، وهو يعمل:

info.plist:


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

-(UIStatusBarStyle)preferredStatusBarStyle{ 
    return UIStatusBarStyleLightContent; 
} 

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


إذا كنت لا تزال تريد استخدام View controller-based status bar appearance في info.plist لتعيين YES ، وهذا يعني أنه يمكنك تغيير شريط الحالة لكل وحدة تحكم في العرض ، فاستخدم ما يلي للنص الأبيض في شريط الحالة في ViewDidLoad:

[[[self navigationController] navigationBar] setBarStyle:UIBarStyleBlackTranslucent];

المفتاح لجعل هذا العمل هو أن فقط تحكم عرض ملء الشاشة للحصول على إملاء نمط شريط الحالة.

إذا كنت تستخدم وحدة تحكم في التنقل وترغب في التحكم في شريط الحالة على أساس وحدة التحكم لكل عرض ، فستحتاج إلى فئة فرعية UINavigationController وتطبيق preferStatusBarStyle بحيث تقوم بإرجاع تفضيل topViewController.

تأكد من تغيير مرجع الفصل في مشهد لوحة العمل الخاص بك من UINavigationController إلى الفئة الفرعية الخاصة بك (على سبيل المثال MyNavigationController في المثال أدناه).

(إن الأعمال التالية بالنسبة لي. إذا كان التطبيق الخاص بك هو TabBar ، سترغب في القيام بشيء مماثل عن طريق تصنيف UITabBarController ولكن لم أحاول ذلك).

@interface MyNavigationController : UINavigationController

@end

@implementation MyNavigationController

- (UIStatusBarStyle)preferredStatusBarStyle
{
    return self.topViewController.preferredStatusBarStyle;
}

@end

ببساطة الاتصال

[[UINavigationBar appearance] setBarStyle:UIBarStyleBlack];

في ال

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

طريقة AppDelegate يعمل بشكل AppDelegate بالنسبة لي في iOS7.


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

  1. تعيين View controller-based status bar appearance إلى NO في Info.plist الخاص بك.
  2. استدعاء [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

ملاحظة: تم إهمال هذه الطريقة في iOS9. استخدم preferStatusBarStyle على UIViewController بدلاً من ذلك. (انظر مكتبة مطوري Apple )


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

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

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

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

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

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

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


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

انتقل إلى 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];
}

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


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

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

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

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

تصحيح

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


فقط خطوتين على النحو التالي:

الخطوة 1:

ضمن علامة التبويب "معلومات" في project target ، أضف "إضافة صف":

UIViewControllerBasedStatusBarAppearance ، set value NO .

الخطوة 2:

في المشروع AppDelegate.m :

- (BOOL)application:(UIApplication *)application 
        didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
    …
    [application setStatusBarStyle:UIStatusBarStyleLightContent];
    …
}

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

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

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

} 

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


في info.plist قم بتعيين قيمة الحقل NO ظهور مظهر شريط الحالة القائم على وحدة التحكم وتعيين ضوء نمط شريط الحالة في الهدف> الإعداد العام.


لا حاجة للقيام ببعض إضافي ، فقط اكتب هذا الرمز في viewController الخاص بك والحصول على لون شريط الحالة أبيض

- (UIStatusBarStyle)preferredStatusBarStyle{return UIStatusBarStyleLightContent;}

لا شيء من هذا العمل بالنسبة لي ، لذلك هنا هو حل يعمل ...

في Info.plist ، أضف صفًا:

UIViewControllerBasedStatusBarAppearance ، وتعيين القيمة NO .

ثم في AppDelegate في didFinishLaunchingWithOptions ، أضف هذه الصفوف:

[application setStatusBarHidden:NO];
[application setStatusBarStyle:UIStatusBarStyleLightContent];

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

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

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


في Swift 3 من السهل جدا فقط مع 2 خطوات. انتقل إلى info.plist وقم بتغيير View controller-based status bar appearance إلى "NO". ثم في Appdelegate مجرد إضافة هذا السطر في طريقة didfinishlaunchingwithoptions

  func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
        // Override point for customization after application launch.
        UIApplication.shared.statusBarStyle = .lightContent
        return true
    }

ببساطة في Appdelegate

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

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

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

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

هذا هو.





uistatusbar