আইওএসে স্ট্যাটাস বারের পাঠ্য রঙটি কীভাবে পরিবর্তন করবেন


990

আমার অ্যাপ্লিকেশনটির গা dark় ব্যাকগ্রাউন্ড রয়েছে তবে আইওএস 7-এ স্ট্যাটাস বারটি স্বচ্ছ হয়ে উঠেছে। সুতরাং আমি সেখানে কিছুই দেখতে পাচ্ছি না, কেবল কোণে সবুজ ব্যাটারি সূচক। হোম স্ক্রিনের মতো আমি কীভাবে স্ট্যাটাস বারের পাঠ্যের রঙ সাদা করতে পারি?


9
এই লিঙ্কটিতে এই বিষয়ে আকর্ষণীয় তথ্য রয়েছে: Doubleencore.com/2013/09/…
অ্যাড্রিয়ানো লুকাস

উত্তর:


1379
  1. সেট UIViewControllerBasedStatusBarAppearanceথেকে YES.plist ফাইলে।

  2. করণ viewDidLoad[self setNeedsStatusBarAppearanceUpdate];

  3. নিম্নলিখিত পদ্ধতি যুক্ত করুন:

    - (UIStatusBarStyle)preferredStatusBarStyle
    { 
        return UIStatusBarStyleLightContent; 
    }

দ্রষ্টব্য : এটি ভিতরে নিয়ন্ত্রণকারীদের জন্য কাজ করে না UINavigationController, দয়া করে নীচে টাইসনের মন্তব্য দেখুন :)

সুইফট 3 - এটি ভিতরে নিয়ন্ত্রকদের কাজ করবে UINavigationController। আপনার নিয়ামকের ভিতরে এই কোডটি যুক্ত করুন।

// Preferred status bar style lightContent to use on dark background.
// Swift 3
override var preferredStatusBarStyle: UIStatusBarStyle {
    return .lightContent
}

সুইফট 5 এবং সুইফটুআই

SwiftUI এর জন্য একটি নতুন সুইফ্ট ফাইল কল করুন HostingController.swift

import Foundation
import UIKit
import SwiftUI

class HostingController: UIHostingController<ContentView> {
    override var preferredStatusBarStyle: UIStatusBarStyle {
        return .lightContent
    }
}

তারপরে কোডটিতে নিম্নলিখিত লাইনগুলি পরিবর্তন করুন SceneDelegate.swift

window.rootViewController = UIHostingController(rootView: ContentView())

প্রতি

window.rootViewController = HostingController(rootView: ContentView())

78
আমার দ্বিতীয় পদক্ষেপের দরকার নেই
জেসন মুর

37
Xcode5-DP5 সহ iOS 7 বিটা 5 এ কাজ করছে বলে মনে হচ্ছে না। পছন্দসই স্ট্যাটাসবারস্টাইল কল করা হবে বলে মনে হচ্ছে না।
উইলসনথ

18
ইউআইভিউকন্ট্রোলার বেসড স্ট্যাটাসবার
অ্যাপ্লিকেশন এক্সকোড

42
এক্সকোড জিএম বীজের জন্য উত্তরটি পেয়েছেন: ১. ইনফো.পিস্টে কন্ট্রোলার-ভিত্তিক স্ট্যাটাস বারের উপস্থিতি সংখ্যা 2 হিসাবে দেখুন app
parilogic

101
ইউআইএনএভিগেশন কন্ট্রোলার একটি বিশেষ কেস, উপরের কাজ করবে না। এই মাত্র আমার মাথা scratching ঘন্টা ব্যয়। সমাধানের জন্য এখানে দেখুন: stackoverflow.com/a/19513714/505457
টাইসন

848

বিকল্পভাবে, আপনি ভিউ-কন্ট্রোলার ভিত্তিক স্ট্যাটাস বারের উপস্থিতি থেকে বেরিয়ে আসতে পারেন:

  1. সেট View controller-based status bar appearanceথেকে NOআপনার Info.plist
  2. কল [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

দ্রষ্টব্য: এই পদ্ধতিটি iOS9 এ অবমূল্যায়ন করা হয়েছে। ব্যবহার করুন preferredStatusBarStyleপরিবর্তে UIViewController উপর। ( অ্যাপল বিকাশকারী লাইব্রেরি দেখুন )


16
এটি একটি আরও ভাল এবং সহজ রুট।
মিক বাইরেন

227
কোড করার দরকার নেই। এটি সবই প্লাস্ট থেকে করা যেতে পারে: (1) "দেখুন নিয়ামক-ভিত্তিক স্ট্যাটাস বারের উপস্থিতি" NO তে সেট করুন এবং (2) "স্থিতি দণ্ড শৈলী" থেকে "ওপ্যাক ব্ল্যাক স্টাইল" সেট করুন। (কাঁচা মানগুলি ইউআইভিউ কনট্রোলারবিষ্ট স্ট্যাটাসবার অ্যাপিয়ারেন্স -> কোনও এবং ইউআইএসটিটাসবারস্টাইল -> ইউআইএসটিটাস বারস্টাইল ব্ল্যাকঅ্যাপক)
সুইফটআরকিটেক্ট

3
মনে রাখবেন যে এটি কাজ করার জন্য আপনার অবশ্যই প্রাসঙ্গিক তথ্য.পলিট মানটি NO এ সেট করতে হবে
অভি বেকার্ট

9
@ গথিকদেব: দুর্দান্ত ধরা আপনার উত্তরটি এটি সবচেয়ে পরিষ্কার হিসাবে গ্রহণ করবে। বার স্টাইলের জন্য হালকা বিকল্প হতে পারে: ইউআইএসটিটাস
বারস্টাইললাইট

9
এই পদ্ধতিটি আইওএস 9
অবমুক্ত

439

কোনও লাইন কোড না লিখে আপনি এটি করতে পারেন!
পুরো অ্যাপ্লিকেশনটির মাধ্যমে স্ট্যাটাস বারের পাঠ্যকে সাদা করার জন্য নিম্নলিখিতগুলি করুন

আপনি plist ফাইল প্রকল্পে :

  • স্থিতি বার শৈলী: Transparent black style (alpha of 0.5)
  • নিয়ামক ভিত্তিক স্থিতি দণ্ডের উপস্থিতি দেখুন: NO
  • স্ট্যাটাস বারটি প্রাথমিকভাবে লুকানো থাকে: NO

12
জিনিসগুলি পরিবর্তিত হয়েছে কিনা তা আমি জানি না, তবে ইউআইএসটিটাসবারস্টাইললাইট কনটেন্ট মানটি এক্সকোড দ্বারা স্বীকৃত নয় এবং কোনও ডকুমেন্টেশনে পাওয়া যায় নি ... যদিও এটি কাজ করে বলে মনে হচ্ছে।
নাথান এইচ

5
এটি এটিকে স্প্ল্যাশ স্ক্রিনেও পরিবর্তন করেছে, যেখানে কেবল নেভিগেটরে এটি সেট করা ... কুডোস!
viniciusnz

3
অবশ্যই এটি করা সহজতম উপায় এবং উল্লিখিত হিসাবে স্প্ল্যাশ স্ক্রিনেও কাজ করে।
ওয়ান্ডার্স

4
সেখানে কোনো কিছু বলা হয় UIStatusBarStyleLightContentমধ্যে plist infoতবে হয় Transparent Blackযা একই কৌতুক করতে হবে :) প্লাস, আপনি যোগ করতে হবে View controller-based status bar appearanceএটা যেমন সেখানে নেই মূলত এবং সব কি কাজ :) এটি পেতে প্রয়োজন
user1949873

45
আমার মতো অলস লোকের জন্য, অনুলিপি করুন এবং অতীত হয়ে গেলেন: <key>UIStatusBarStyle</key> <string>UIStatusBarStyleLightContent</string> <key>UIViewControllerBasedStatusBarAppearance</key> <false/>
অ্যাডাম ওয়েট

241

দ্রষ্টব্য: সর্বাধিক উত্সাহিত উত্তর আইওএস 7/8 এর জন্য কাজ করে না

ইনফো.লিস্টে 'দেখুন নিয়ন্ত্রক-ভিত্তিক স্ট্যাটাস বারের উপস্থিতি' কোনও হিসাবে সেট করুন

AppDelegate এ যোগ করুন

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

প্রতি

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

এই সমাধানটি আইওএস 7/8 এর জন্য কাজ করে


10
আইওএস 9-এ অবমুক্ত করা হয়েছে: - /
sudo

112

আমার জন্য, অন্যান্য উত্তরের সমস্ত জিনিস (এবং অন্যান্য উত্স / ডকুমেন্টেশন থেকে) ব্যবহার করে কিছুই ঘটেনি। কী সহায়তা করেছিল তা হল XIB এ নেভিগেশন বার স্টাইলটিকে "কালো" এ সেট করা। এটি কোনও কোড ছাড়াই পাঠ্যকে সাদা করে দিয়েছে।

এখানে চিত্র বিবরণ লিখুন


3
ডিভাইসে উপরের কোনও উত্তর আমার পক্ষে কাজ করে নি। আমি মনে করি এটি নতুন সিস্টেম সম্পর্কে সমস্ত কিছু বলেছে যা আপনাকে স্ট্যাটাস_বারের পাঠ্য সাদা করতে ব্ল্যাকটিতে নেভিগেশন_বার সেট করতে হবে ।
MrTJ

2
প্রচুর জিনিস নিয়ে লড়াই করার পরে, এটিই কাজ শেষ করে। স্টাইলটি ডিফল্ট হিসাবে সেট করা হয়েছিল। এটি পরিবর্তন করা হয়েছে এবং অন্যান্য সমস্ত স্ট্যাটাস বারের হ্যাকগুলি সরিয়ে নিয়েছে এবং এটি কার্যকর হয়।
গুজামিন

1
আপনি যদি আইবিতে আপনার সমস্ত নেভ বার সেট করতে না চান তবে আপনি এর উপস্থিতি প্রক্সিও সেট করতে পারেন। [[ইউআইএনএভিগেশন বার উপস্থিতি] সেটবারস্টাইল: ইউআইবার স্টাইলব্ল্যাক];
স্টিভ মোসার 15

3
আইওএস 7 স্টোরিবোর্ডে আমার পক্ষে কাজ করে না। দেখে মনে হচ্ছে এটি অন্য কোনও পার্শ্ব-প্রতিক্রিয়া হতে পারে?
ক্রিস

আমি এটি নিশ্চিত করতে চাই যে উপরের সমস্ত উত্তর আমার পক্ষেও কার্যকর হয়নি। চিত্র অনুসরণ করে, স্ট্যাটাস বারের পাঠ্যটি সাদা দেখাচ্ছে। তবে আমি আবারও পুনরাবৃত্তি করছি, এক্সকোড 6.2 এবং আইওএস 8.2 সহ উপরের উত্তরগুলি কার্যকর হয় না।
মার্কাস

98

এর কোনওটিই আমার পক্ষে কাজ করেনি, সুতরাং এখানে একটি কার্যনির্বাহী সমাধান ...

ইন Info.plist, একটি সারি যুক্ত করুন:

UIViewControllerBasedStatusBarAppearance, এবং মান নির্ধারণ করুন NO

তারপরে অ্যাপডেলিগেট-এ didFinishLaunchingWithOptions, এই সারিগুলি যুক্ত করুন:

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

এই সমাধানটি আমার পক্ষে কাজ করেছে যখন উপরের বিষয়গুলি তা করে নি।
জন কনটারিনো

বিস্ময়কর তবে এই ইউআইভিউ কনট্রোলার বেসড স্ট্যাটাসবার অ্যাপেরিয়েন্স একই রূপান্তরিত হয়: কন্ট্রোলার-ভিত্তিক স্ট্যাটাস বারের উপস্থিতি স্বয়ংক্রিয়ভাবে দেখুন :)
অভিষেক থাপলিয়াল

63

এর জন্য আপনার কোনও কোড করার দরকার নেই

ইনফরমেশন.পুলিস্টে আপনাকে "নিয়ন্ত্রক-ভিত্তিক স্ট্যাটাস বারের উপস্থিতি" কী যুক্ত করতে হবে: এখানে চিত্র বর্ণনা লিখুন

& এর মান প্রকারটি বুলিয়ান এবং কোনও মানতে সেট করুন। তারপরে প্রকল্পের সেটিংসে ক্লিক করুন, তারপরে জেনারেল ট্যাবে ক্লিক করুন এবং ডিপ্লোয়মেন্ট ইনফোতে পছন্দসই স্ট্যাটাস বার শৈলীতে সেট করুন follows

এখানে চিত্র বর্ণনা লিখুন

এটাই.


1
আমি আপনার পদ্ধতির পছন্দ! আমার ক্ষেত্রে আমি স্থিতি বারের শৈলীটি কীভাবে হালকা হতে পারি তা কেবল যখন পূর্ণস্ক্রিনে (ডাব্লু / ও নেভিগেশন বার) হয় তখন কীভাবে তা নির্ধারণ করার চেষ্টা করছিলাম। তারপরে, আমি বুঝতে পেরেছিলাম যে অন্য সমস্ত পর্দার একই হালকা শৈলীতে ফিট করা উচিত। সুতরাং একটি ভাল সমাধান পুরো জিনিস জন্য সেট করা হয়। ধন্যবাদ! (:
ইগর ডি লোরেঞ্জি

আপনার অ্যাপটি চলাকালীন আপনার যদি এটি পরিবর্তন করার দরকার না হয়। এটি সর্বোত্তম পন্থা।
মাইকেল

এই পদ্ধতির অবশ্যই কাজ করে তবে এটি আইপ্যাডে একটি অদ্ভুত সমস্যা প্রবর্তন করে। যদি আপনার অ্যাপ্লিকেশন ডিপলিঙ্কগুলি সমর্থন করে এবং আপনি যখন ডিপলিংকের মাধ্যমে অ্যাপ্লিকেশনটি চালু করেন তখন স্ট্যাটাস বারে উপস্থিত ব্যাকলিঙ্কটি অদৃশ্য হয়ে যায়।
চিত্রানশু আস্থানা

সেরা এবং সবচেয়ে সহজ এক।
অমিত কুমার

আমার জন্য সেরা সমাধান: ডি
সোনার চিকেন

48

নিম্নলিখিত হিসাবে মাত্র দুটি পদক্ষেপ:

ধাপ 1:

এর তথ্য ট্যাবের অধীনে project target , সারি যুক্ত করুন:

UIViewControllerBasedStatusBarAppearanceমান নির্ধারণ করুন NO

ধাপ ২:

প্রকল্পে AppDelegate.m:

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

4
আমি এই উত্তরটি প্রথম পছন্দ করি কারণ আমি প্রথমবার "অ্যাপ্লিকেশন" পরম ব্যবহার করছি))
এমইউএইচ মোবাইল ইনক।

ডট স্বীকৃতি এবং এটি নিখুঁত হবে;)
রিভেরা

43

এটি গোল্ডেন মাস্টার আইওএস 7 এবং এক্সকোড 5 জিএম বীজ এবং আইওএস 7 এসডিকে 18 ই সেপ্টেম্বর, 2013 এ প্রকাশিত হয়েছে (কমপক্ষে নেভিগেশন নিয়ন্ত্রক লুকিয়ে থাকা সহ):

  1. সেট the UIViewControllerBasedStatusBarAppearanceথেকে NOInfo.plist

  2. ইন ViewDidLoadপদ্ধতি বা যে কোন জায়গায়, যেখানে আপনি পরিবর্তন স্ট্যাটাস বার শৈলী করতে চান: [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];


1
ইউআইভিউকন্ট্রোলারবিস্টস্ট্যাটাসবার অ্যাপেরেন্সের ডিফল্ট মানগুলি হ্যাঁ মনে হয়। "নতুন ভিউ নিয়ন্ত্রণকারী-ভিত্তিক স্থিতি দণ্ড পরিচালনা ব্যবস্থাটি ব্যবহার করতে অ্যাপ্লিকেশানগুলি ডিফল্ট। [ bgr.com/2013/09/10/ios-7-gm-change-log-release-notes/]
Zsolt

1
হ্যাঁ! ইউআইভিউউকন্ট্রোলারবেসড স্ট্যাটাসবার অ্যাপ্লিকেশন কোনও স্থানে সেট করার পরে, স্ট্যাটাস বারের ভিউগুলিতে লুকায়।
নগদলি 李秉骏

এটি কি সমস্ত ভিডিডলডের জন্য প্রয়োগ করা উচিত?
আর্নলি ভিজকায়নো

আপনি এটিকে অ্যাপ্লিকেশনগুলিতে ডিনফিনিশলোডিং পদ্ধতিতে যুক্ত করতে পারেন। অথবা প্রথম দর্শনে দেখুনডিডলোড পদ্ধতিটি যদি আপনি এটি পরিবর্তন করতে না চান।
ডেনিস ফেদোটভস

1
চমত্কার, এই এক কাজ করে। সহজ এবং দুর্দান্ত কোডিং।
ফিলিপ

32

যদি আপনার ইউআইভিউউকন্ট্রোলার কোনও ইউআইএনএভিগেশন কন্ট্রোলারের ভিতরে থাকে তবে আপনাকে বারস্টাইল সেট করতে হবে:

-[UINavigationBar setBarStyle:UIBarStyleBlack]

আসল উত্তর এখানে

https://devforums.apple.com/message/844264#844264


না, এটি কেবলমাত্র নেভিগেশন বারের রঙকে স্ট্যাটাস বার পাঠ্যের রঙের মতো করে তোলে। এটি সমস্যাটি লুকিয়ে রাখে, এটির সমাধান করে না!
wpearse

2
আইওএস 7-তে স্ট্যাটাস বারটি ইউআইএনএভিগেশন বারের নকল করবে যদি ভিউটিতে একটি ইউআইএনএভিগেশন কন্ট্রোলার থাকে তবে অনেক ক্ষেত্রে এটি সঠিক উত্তর।
jonstaff

29

ইন্টারফেস বিল্ডারের মাধ্যমে যদি আপনার এম্বেড করা নেভিগেশন কন্ট্রোলার থাকে তবে আপনার ন্যাভিগেশন কন্ট্রোলার পরিচালনা করে এমন একটি শ্রেণিতে নিম্নলিখিতটি সেট করা নিশ্চিত করুন:

-(UIStatusBarStyle)preferredStatusBarStyle{ 
    return UIStatusBarStyleLightContent; 
} 

আপনার যা প্রয়োজন তা হ'ল।


এটিই ছিল একমাত্র সমাধান যা আমার জন্য স্টোরিবোর্ড-কম এবং xib- কম অ্যাপ্লিকেশনটিতে কাজ করেছিল। আইবি-নন ব্যবহারকারীদের জন্যও সহায়ক হওয়া উচিত।
জনি স্পার্কস

2
যখন প্রতিটি ভিউ কন্ট্রোলারে আমাকে স্টাইলটি আলাদাভাবে সেট করা দরকার তখন আমার পক্ষে এটি উপযুক্ত ছিল
বেন

যদি আপনি হ্যাঁ সেট করা "নিয়ন্ত্রক-ভিত্তিক স্ট্যাটাস বারের উপস্থিতি দেখুন" ধরে রাখতে চান তবে এটি যাওয়ার উপায়। ধন্যবাদ!
মেঘসুরফিন

28

আমি একটি আইওএস 7 অ্যাপের জন্য একটি সুইফট প্রকল্পে এক্সকোড 6 বিটা 5 ব্যবহার করছি ।

আমি যা করেছি তা এখানেই এবং এটি কার্যকর:

info.plist:

এখানে চিত্র বিবরণ লিখুন


2
ধন্যবাদ এটি দেখতে আপনার সমাধানের মতো দেখায়
আইওএস

লঞ্চ স্ক্রিনে, এই অ্যাপ্লিকেশনটি লোড করার সময় এই সমাধানটি স্থিতি দণ্ড দেখায়।
জুয়ান বোয়েরো

XCode 7.1 এ আমার সমস্যাগুলি সমাধান করুন। সর্বশেষ সংস্করণ. অ্যাপল কিছু কাজ করতে কিছু দু'টি গুরুত্বপূর্ণ টুকরো ভুলে গেছে। আবার।
মাইকেল

22

AppDelegate.m এ, নিম্নলিখিতগুলি যুক্ত করুন।

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

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

} 

এবং প্লিস্ট ফাইলে, 'দেখুন কন্ট্রোলার-ভিত্তিক স্ট্যাটাস বারের উপস্থিতি' সেট করুন।


20

সহজভাবে প্রশংসিত

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

5
একটি এবং একমাত্র উত্তর যা আসলে আমার পক্ষে কাজ করেছিল।
উইম হানস্ত্রা

6
তবে এর জন্য আমাদের দেখুন নিয়ামক-ভিত্তিক স্থিতি দণ্ডের উপস্থিতিটি বেছে নিতে হবে
iamyogish

IOS9 মধ্যে অননুমোদিত
দিমিত্রিস

20

ঠিক আছে, এটি সত্যিই আমার জন্য কেকের টুকরাটির মতো কাজ করছে।

আপনার অ্যাপ্লিকেশন এ যান info.plist

  1. সেট View controller-based status bar appearanceকরুনNO
  2. সেট Status bar styleকরুনUIStatusBarStyleLightContent

তারপরে আপনার অ্যাপ্লিকেশনটির প্রতিনিধিতে যান এবং নীচের কোডটিতে পেস্ট করুন যেখানে আপনি আপনার উইন্ডোগুলির রুটভিউ নিয়ন্ত্রণকারীকে সেট করেছেন।

#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];
}

বিঙ্গো। এটা আমার জন্য কাজ করছে।


1
আমি মনে করি এটি সঠিক উত্তর (প্লিস্টের অংশ) ... কেন আমি ডিডফিনিশলঞ্চিংপথগুলিতে স্ট্যাটিক কোড যুক্ত করব ... যদি পুরো অ্যাপ্লিকেশনটির জন্য আপনার একই রঙের প্রয়োজন হয় তবে এটি সঠিক উপায়
ইউজার 2387149

20
  1. যান Project-> Target,

  2. তারপরে সেট Status Bar Styleকরুন Light। এটি লঞ্চ স্ক্রিন থেকে স্ট্যাটাস-বারকে সাদা করে তোলে। প্রকল্পের সেটিং

  3. তারপরে ইন View controller-based status bar appearanceসমান সেট করুন ।NOInfo.plist


2
দ্বিতীয় অংশ যেখানে আপনি প্রকৃত সেট View controller-based status bar appearance equalকরার NOটুকরা আমি অনুপস্থিত ছিল ছিল। ধন্যবাদ
উইল

18

তথ্য প্লিজিস্টে পরিবর্তন করুন সুইফটে 3 কেবল 2 পদক্ষেপের সাহায্যে খুব সহজ। আপনার তথ্য.পুলিস্টে যান এবং View controller-based status bar appearance"কোনও" তে কীটি পরিবর্তন করুন । তারপরে অ্যাপিডেলিগেটে কেবল এই লাইনটি ডিডফিনিশলানচিংপথ পদ্ধতিতে যুক্ত করুন

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

এটি iOS9 এ অবহিত হয়েছে এখন আপনার এই সম্পত্তিটি রুটভিউকন্ট্রোলারে ওভাররাইড করা উচিত

এটি করার জন্য আইওএস 9-তে অবমূল্যায়ন করা হয়েছে রুটভিউ নিয়ন্ত্রণকারীকে এটি করা উচিত should

override var preferredStatusBarStyle: UIStatusBarStyle {
        return .lightContent
 }

1
এটা ঠিক দুর্দান্ত ভাই :) ধন্যবাদ
নরেশ রেড্ডি এম

ফলে iOS 9 এর মধ্যে অবচিত হয়েছে rootviewcontroller ওভাররাইড Var preferredStatusBarStyle উপর এই কাজ করা উচিত: UIStatusBarStyle {ফিরতি .lightContent}
জেমস Rochabrun

17

অ্যাপল বিকাশকারী ডকুমেন্টেশন দ্বারা বর্ণিত আইওএস 7 পৃথক দর্শন নিয়ন্ত্রকদের স্থিতি দণ্ডের উপস্থিতি নির্ধারণ করতে অনুমতি দেয়:

আইওএস 7 ভিউ কন্ট্রোলারদের অ্যাপটি চলাকালীন স্থিতি বারের স্টাইলটি সামঞ্জস্য করার ক্ষমতা দেয়। স্ট্যাটাস বারের স্টাইলকে ডায়নামিকভাবে পরিবর্তন করার একটি ভাল উপায় হ'ল বাস্তবায়ন preferredStatusBarStyleএবং and একটি অ্যানিমেশন ব্লকের মধ্যে — স্থিতি বারের উপস্থিতি এবং কলটি আপডেট করুন setNeedsStatusBarAppearanceUpdate

বিশ্বব্যাপী স্থিতি দণ্ডের উপস্থিতি সেট করা একটি দ্বি-পদক্ষেপ প্রক্রিয়া।

প্রথমত, আপনাকে আইওএসকে বলতে হবে যে আপনি ভিউ-ভি-ভিউ ভিত্তিতে স্ট্যাটাস বারের উপস্থিতি সেট করতে চান না।

তারপরে আপনাকে চার্জ নিতে হবে এবং নতুন গ্লোবাল স্ট্যাটাস বার স্টাইলটি সেট করতে হবে।

ভিউ-বাই-ভিউ স্ট্যাটাস বার কন্ট্রোলটি অক্ষম করতে, আপনাকে View controller-based status bar appearanceসম্পত্তিটি সেট করতে হবেInfo.plist

প্রকল্প নেভিগেটরটি খুলুন এবং আপনার আইওএস অ্যাপের জন্য প্রকল্পটি নির্বাচন করুন, তারপরে তথ্য ট্যাবটি নির্বাচন করুন।

একটি সারিতে ঘোরাফেরা করুন, তারপরে আপনার যে কোনও নতুন সম্পত্তি যুক্ত করতে উপস্থিত প্লাস চিহ্নটি ক্লিক করুন .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/


ধন্যবাদ। আমার সমস্যাটি হ'ল আমি দেখতে পাইনি যে "ভিউ কন্ট্রোলার-ভিত্তিক স্ট্যাটাস বারের উপস্থিতি" স্ট্রিংয়ে সেট করা আছে। "হাত ধরে" .plist ফাইলটি সম্পাদনা করা এবং বুলিয়ান মান সাফ জিনিসগুলি আপ করা।
ক্রিস প্রিন্স

12

কিছু অতিরিক্ত করার দরকার নেই, কেবল আপনার ভিউকন্ট্রোলারে এই কোডটি লিখুন এবং স্ট্যাটাস বারের রঙ সাদা করুন

- (UIStatusBarStyle)preferredStatusBarStyle{return UIStatusBarStyleLightContent;}

প্রয়োগের পরে এটিকে ViewController.m এর মধ্যে রাখুন। এটি সবচেয়ে সহজ এবং দুর্দান্ত কাজ করে! ধন্যবাদ মোহিত!
ফিল মুলকিনস

12

এক্সকোড জিএম বীজের জন্য উত্তর আপডেট হয়েছে:

  1. ইন Info.plistকরা View controller-based status bar appearanceযেমনNO

  2. প্রকল্পে, সেট করুন:

    এখানে চিত্র বিবরণ লিখুন

  3. ভিউডিডলডে:

    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];


এটি আমার জন্য স্ট্যাটাস বার নয়, ট্যাব বার পরিবর্তন করেছে।
কিথ

11

আমি মনে করি সমস্ত উত্তর সত্যই সমস্যাটিকে নির্দেশ করে না কারণ এগুলি সমস্ত নির্দিষ্ট পরিস্থিতিতে কাজ করে। তবে আপনার যদি সমস্ত মামলা কভার করতে হয় তবে পয়েন্টগুলি মেনে চলুন:

আপনার স্ট্যাটাস বারের হালকা স্টাইলটি কোথায় দরকার তা নির্ভর করে আপনার এই 3 টি পয়েন্টের সবসময় মনে রাখা উচিত:

1) আপনার যদি লঞ্চ স্ক্রিনে বা অন্য জায়গাগুলিতে স্থিতি দণ্ডের প্রয়োজন হয় যেখানে আপনি এটি নিয়ন্ত্রণ করতে পারবেন না (দেখুন নিয়ন্ত্রকগুলি নয়, বরং কিছু সিস্টেম নিয়ন্ত্রিত উপাদান / লঞ্চ স্ক্রিনের মতো মুহুর্ত) আপনি আপনার প্রকল্পের সেটিংসে যান প্রকল্প সেটিংস

২) কোনও নেভিগেশন নিয়ামকের অভ্যন্তরে যদি আপনার কোনও নিয়ামক থাকে তবে আপনি এটি নীচে ইন্টারফেস বিল্ডারে পরিবর্তন করতে পারেন:

ক) আপনার নেভিগেশন নিয়ন্ত্রকের নেভিগেশন বারটি নির্বাচন করুন আপনার নেভিগেশন নিয়ন্ত্রকের নেভিগেশন বারটি নির্বাচন করুন

খ) তারপরে নেভিগেশন বারের স্টাইলটি "কালো" তে সেট করুন, কারণ এর অর্থ আপনার স্ট্যাটাস বারের নীচে একটি "কালো" -> গা dark় পটভূমি থাকবে, সুতরাং এটি স্ট্যাটাস বারটি সাদাকে সেট করবে

এখানে চিত্র বর্ণনা লিখুন

অথবা কোড অনুসারে এটি করুন

navigationController?.navigationBar.barStyle = UIBarStyle.Black

3) যদি আপনার একা নিয়ামক থাকে তবে এর নিজস্ব স্ট্যাটাস বার স্টাইল থাকা দরকার এবং এটি কোনও ইউআইএনএভিগেশন নিয়ন্ত্রণকারী হিসাবে কিছু ধারক কাঠামোতে এম্বেড করা হয়নি

নিয়ামকের জন্য কোডে স্ট্যাটাস বার শৈলী সেট করুন:

কোডে স্ট্যাটাস বার শৈলী সেট করা


দয়া করে আপনার কেসটি ব্যাখ্যা করুন এবং আমি সাহায্য করার চেষ্টা করব
ফকস

1
আমাকে প্লাস্টে স্থিতিবারীয়সআইটিলিডহিডেন = কোনও যোগ করতে হবে না এবং সাথে সাথে ভিউকন্ট্রোলারব্যাসড অ্যাপ্লিকেশন স্ট্যাটাসবার অ্যাপেরেন্স = কোনও প্লাস্টে নেই। তারপরে এটি পার্ট
মাইকেল

আপনার কি কোনও স্প্ল্যাশস্ক্রিন রয়েছে যা প্রথম লোডিং ভিউ কন্ট্রোলারের মতো একই "চিত্র" রয়েছে? এছাড়াও, আপনার টার্গেটের "তথ্য" বিভাগে আপনি "স্ট্যাটাস বারটি লুকান" কে মিথ্যাতে সেট করতে এবং আপনার .plist সাথে ডিলিং এড়াতে পারেন। "স্ট্যাটাসবারিআইসনলিটিড হিডেন" পতাকা
ফকস

আমি করি না. এটি উত্পন্ন ডিফল্ট xib ব্যবহার করছে।
মাইকেল 21

XCode 7.1 এ একটি নতুন প্রকল্প তৈরি করার সময় আমি আসলে এই সমস্যাটি পেয়েছি যার কারণেই আমি ভেবেছিলাম এটি এত অদ্ভুত ছিল
মাইকেল

10

সহজভাবে ফোন করা

[[UINavigationBar appearance] setBarStyle:UIBarStyleBlack];

মধ্যে

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

আইওএস 7-এ আমার জন্য আমার AppDelegateকাজের পদ্ধতি দুর্দান্ত।


বাহ, এখানে লোটাসার বাজে কথা কিন্তু এই উত্তরটি আমার পক্ষে কাজ করেছে। আমি এক্সকোড 6 এবং আইওএস 8 এসডিকে ব্যবহার করছি
ইথান পার্কার

1
দুর্দান্ত, আইওএস 9 এ আমার জন্য কাজ করেView controller-based status bar appearance = NO
dstudeba

9

এটি আইওএস 7 ইউআই ট্রানজিশন গাইডে নথিভুক্ত করা হয়েছে , যা আপনার সরাসরি অ্যাক্সেস করার জন্য একটি অ্যাপল বিকাশকারী আইডি প্রয়োজন। সম্পর্কিত অংশ:

স্ট্যাটাস বারটি স্বচ্ছ হওয়ায় এর পেছনের ভিউটি দেখায়। [...] UIStatusBarStyleস্ট্যাটাসবারের সামগ্রীটি অন্ধকার বা হালকা হওয়া উচিত কিনা তা নির্দিষ্ট করতে একটি ধ্রুবক ব্যবহার করুন :

UIStatusBarStyleDefaultঅন্ধকার সামগ্রী প্রদর্শন করে। [...]

UIStatusBarStyleLightContentহালকা সামগ্রী প্রদর্শন করে। অন্ধকার সামগ্রী যখন স্ট্যাটাস বারের পিছনে থাকে তখন ব্যবহার করুন।

আগ্রহেরও সম্ভবত:

আইওএস 7-এ, আপনি পৃথক ভ্যু নিয়ন্ত্রকের কাছ থেকে স্ট্যাটাস বারের স্টাইলটি নিয়ন্ত্রণ করতে পারেন এবং অ্যাপটি চালানোর সময় এটি পরিবর্তন করতে পারেন। এই আচরণটি বেছে UIViewControllerBasedStatusBarAppearanceনিতে কোনও অ্যাপ্লিকেশনটির Info.plistফাইলে কীটি যুক্ত করুন এবং এর মান দিন YES

আমি অবশ্যই দস্তাবেজের মাধ্যমে একবার দেখার পরামর্শ দিচ্ছি, যা আবার আপনার অ্যাপল বিকাশকারী আইডি দিয়ে অ্যাক্সেস করতে পারে।


3
আমি ইতিমধ্যে চেষ্টা করেছি [অ্যাপ্লিকেশন সেট স্ট্যাটাসবারস্টাইল: ইউআইএসটিটাসবারস্টাইললাইট কনটেন্ট]; কিন্তু আসলে কিছুই পরিবর্তন, পাঠ্যের রঙে এখনও কালো
Oleksandr Veremchuk

আমি আরও সহায়তায় থাকতে চাই, তবে আমি যেমন বলেছি, আমি কী প্রস্তাব দিতে হবে তা জানতে আইওএস বিকাশ প্রক্রিয়াটির সাথে যথেষ্ট পরিচিত নই। দুঃখিত!
অ্যারন মিলার

1) ইউআইভিউউকন্ট্রোলারবিস্টস্ট্যাটাসবার অ্যাপেরেন্সটি হ্যাঁ প্লিস্টে ইয়েস-তে সেট করুন 2) ভিডডিডলয়েড এ [স্ব-সেটনিডস্ট্যাটাসবার্পিয়ারেন্সআপটেট]; 3) নিম্নলিখিত পদ্ধতিটি যুক্ত করুন :-( ইউআইএসটিটাসবারস্টাইল) পছন্দের স্ট্যাটাসবারস্টাইল - ইউআইএসটিটাসবারস্টাইললাইট কনটেন্ট ফিরিয়ে দিন; }
পিটার বি ক্রেমার

9

স্থিতি দণ্ড পরিবর্তন সম্পর্কে অ্যাপল নির্দেশিকা / নির্দেশিকা এখানে is কেবলমাত্র অন্ধকার এবং হালকা (যখন এবং কালো) স্ট্যাটাস বারে অনুমোদিত।

এখানে - স্থিতি দণ্ডের স্টাইলটি কীভাবে পরিবর্তন করবেন:

আপনি সেট স্ট্যাটাস বার শৈলী করতে চান তাহলে, অ্যাপ্লিকেশন স্তর তারপর সেট UIViewControllerBasedStatusBarAppearanceকরতে NOআপনার `.plist 'ফাইলে।

আপনি যদি স্থিতি দণ্ড শৈলীটি সেট করতে চান, তবে নিয়ন্ত্রক স্তরে ভিউ করুন তবে এই পদক্ষেপগুলি অনুসরণ করুন:

  1. সেট UIViewControllerBasedStatusBarAppearanceথেকে YES.plist, ফাইল আপনি শুধুমাত্র UIViewController পর্যায়ে সেট স্ট্যাটাস বার শৈলী করতে হবে।
  2. ভিউডিডলড এড ফাংশন - setNeedsStatusBarAppearanceUpdate

  3. আপনার ভিউ কন্ট্রোলারে পছন্দসই স্ট্যাটাসবারস্টাইলকে ওভাররাইড করুন।

-

override func viewDidLoad() {
    super.viewDidLoad()
    self.setNeedsStatusBarAppearanceUpdate()
}

override var preferredStatusBarStyle: UIStatusBarStyle {
    return .lightContent
}

স্ট্যাটাস বার শৈলীর সেটআপ স্তর অনুসারে .plist এর মান সেট করুন। এখানে চিত্র বর্ণনা লিখুন


অ্যাপ্লিকেশন প্রবর্তনের সময় বা আপনার ভিউ কন্ট্রোলারের ভিউডিডলড চলাকালীন স্থিতি বারের জন্য পটভূমির রঙ পরিবর্তন / সেট করার জন্য এখানে কিছু হ্যাক কৌশল রয়েছে।

extension UIApplication {

    var statusBarView: UIView? {
        return value(forKey: "statusBar") as? UIView
    }

}

// Set upon application launch, if you've application based status bar
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
        UIApplication.shared.statusBarView?.backgroundColor = UIColor.red
        return true
    }
}


or 
// Set it from your view controller if you've view controller based statusbar
class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        UIApplication.shared.statusBarView?.backgroundColor = UIColor.red
    }

}



ফলাফল এখানে:

এখানে চিত্র বর্ণনা লিখুন


8

আমি কিছু আলাদা জিনিস করেছি এবং এটি আমার পক্ষে কাজ করে।

কোডে কোনও পরিবর্তন ছাড়াই, আমি আমার .plist ফাইলটিকে এই জাতীয়ভাবে কনফিগার করেছি:

  • নিয়ামক-ভিত্তিক স্থিতি দণ্ডের উপস্থিতি দেখুন> না
  • স্থিতি দণ্ডের শৈলী> ইউআইএসটিটাসবারস্টাইললাইট কনটেন্ট (সাধারণ স্ট্রিং)

আমি আসা করি এটা সাহায্য করবে.

সম্পাদন করা

প্রতিটি দর্শন নিয়ামকের জন্য আমি "স্ট্যাটাস বার" এর সিমুলেটেড মেট্রিক্স সম্পত্তি, স্টোরিবোর্ডে, "অনুমান" থেকে "হালকা সামগ্রী" তে পরিবর্তন করি


8

আপনি যদি সুইফ্টের সাথে একই ফলাফল চান তবে আপনি এই অ্যাপটি আপনার অ্যাপডেলিগেট.সুইফ্ট ফাইলটিতে ব্যবহার করতে পারেন:

UINavigationBar.appearance().barStyle = .BlackTranslucent

এবং আপনার স্ট্যাটাস বারের লেখাটি সাদা হবে :-)!


8

যদি আপনি এখনও View controller-based status bar appearanceই.য়ে. তে সেট করা তথ্য.পলিটে ব্যবহার করতে চান , যার অর্থ আপনি প্রতিটি ভিউ-কন্ট্রোলারের জন্য স্ট্যাটাসবারটি পরিবর্তন করতে পারেন, ভিউডিডলডের স্ট্যাটাস-বারে সাদা পাঠ্যের জন্য নিম্নলিখিতটি ব্যবহার করুন:

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

নেভিগেশন বার! = স্থিতি দণ্ড।
মাইকেল পিটারসন

... তুমি কি চেষ্টা করেছ !? (এবং হ্যাঁ, স্ট্যাটাস বারের জন্য)
eirik

7

প্লিস্টে, এটি যুক্ত করুন:

  • স্থিতি বার শৈলী: UIStatusBarStyleLightContent
  • নিয়ামক ভিত্তিক স্থিতি দণ্ডের উপস্থিতি দেখুন: NO

7

info.plist সেটে ক্ষেত্রের মান কোন দেখুন নিয়ামক ভিত্তিক স্ট্যাটাস বার চেহারা এবং সেট স্ট্যাটাস লক্ষ্য মধ্যে শৈলী আলো> সাধারণ সেটিং।


2
বিজয়ী বিজয়ীর মুরগির ডিনার
টম্মিবানানস

7

আমি আপনাকে আপনার প্রশ্নের একটি সম্পূর্ণ উত্তর দিতে দিন। স্ট্যাটাস বারের পাঠ্যের রঙ পরিবর্তন করা খুব সহজ তবে আইওএস 7-তে বিশেষত নতুনদের জন্য এটি কিছুটা বিভ্রান্তিকর।

আপনি যদি স্টোরিবোর্ডে ভিউ কন্ট্রোলার নির্বাচন করে এবং ডানদিকে সিমুলেটেড মেট্রিকগুলিতে গিয়ে রঙটি কালো থেকে সাদাতে পরিবর্তন করার চেষ্টা করছেন, এটি কার্যকর হবে না এবং আমি জানি না কেন। এটি এর মতো পরিবর্তনের মাধ্যমে কাজ করা উচিত তবে যেভাবে হয়।

দ্বিতীয়ত, আপনি আপনার প্লিস্টে ইউআইভিউকন্ট্রোলারবেসড স্ট্যাটাসবার অ্যাপেরেন্স সম্পত্তি পাবেন না তবে ডিফল্টরূপে এটি সেখানে নেই। আপনাকে এটি নিজে + বোতামে ক্লিক করে যুক্ত করতে হবে এবং তারপরে এটি কোনওতে সেট করতে হবে।

আইওএস 7 স্ট্যাটাস বারের পাঠ্যের রঙ

শেষ অবধি, আপনাকে আপনার AppDelegate.m ফাইলে যেতে হবে এবং ডিডফিনিশলঞ্চিং উইথঅ্যাপশন পদ্ধতিতে নিম্নলিখিতটি যুক্ত করতে হবে, নিম্নলিখিত লাইনটি যুক্ত করুন:

     [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

এটি আপনার সমস্ত দর্শন নিয়ন্ত্রকের জন্য রঙকে সাদা করে তুলবে। আশাকরি এটা সাহায্য করবে!


এই পদ্ধতি iOS 9 এর উপর অবচিত
Trung বুই
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.