මගේ යෙදුමට අඳුරු පසුබිමක් ඇත, නමුත් iOS 7 හි තත්ව තීරුව විනිවිද පෙනෙන බවට පත් විය. ඒ නිසා මට එහි කිසිවක් නොපෙනේ, කෙළවරේ ඇති හරිත බැටරි දර්ශකය පමණි. මුල් තිරයේ මෙන් තත්ව තීරුවේ පා color වර්ණය සුදු පැහැයට වෙනස් කරන්නේ කෙසේද?
මගේ යෙදුමට අඳුරු පසුබිමක් ඇත, නමුත් iOS 7 හි තත්ව තීරුව විනිවිද පෙනෙන බවට පත් විය. ඒ නිසා මට එහි කිසිවක් නොපෙනේ, කෙළවරේ ඇති හරිත බැටරි දර්ශකය පමණි. මුල් තිරයේ මෙන් තත්ව තීරුවේ පා color වර්ණය සුදු පැහැයට වෙනස් කරන්නේ කෙසේද?
Answers:
සකසන්න UIViewControllerBasedStatusBarAppearance
කිරීමට YES
ද .plist ගොනුවේ.
කළ viewDidLoad
යුතු දේ අ[self setNeedsStatusBarAppearanceUpdate];
පහත ක්රමය එකතු කරන්න:
- (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())
විකල්පයක් ලෙස, ඔබට දර්ශන-පාලක පාදක තත්ව තීරු පෙනුමෙන් ඉවත් විය හැකිය:
View controller-based status bar appearance
කිරීමට NO
ඔබේInfo.plist
.[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
සටහන: මෙම ක්රමය iOS9 හි ඉවත් කර ඇත. භාවිතා preferredStatusBarStyle
වෙනුවට UIViewController මත. ( ඇපල් සංවර්ධක පුස්තකාලය බලන්න )
කිසිදු කේත රේඛාවක් ලිවීමෙන් තොරව ඔබට මෙය කළ හැකිය!
සමස්ත යෙදුම හරහා තත්ව තීරුවේ පා color වර්ණය සුදු කිරීමට පහත සඳහන් දෑ කරන්න
ඔබ ප්රක්ෂේපණ ගොනුව:
Transparent black style (alpha of 0.5)
NO
NO
UIStatusBarStyleLightContent
තුළ plist info
වුවද මෙහි Transparent Black
එකම උපක්රමය කරන්න වනු ඇත :) ප්ලස්, ඔබ එකතු කිරීමට අවශ්ය View controller-based status bar appearance
එය මුලින් එහි නෑ ලෙස එය සියලු ඔබට වැඩ කිරීමට එය ලබා ගැනීමට අවශ්ය දේ :)
<key>UIStatusBarStyle</key> <string>UIStatusBarStyleLightContent</string> <key>UIViewControllerBasedStatusBarAppearance</key> <false/>
සටහන: ඉහළට ඔසවා ඇති බොහෝ පිළිතුරු iOS 7/8 සඳහා ක්රියා නොකරයි
Info.plist හි 'පාලකය මත පදනම් වූ තත්ව තීරු පෙනුම' NO ලෙස සකසන්න
AppDelegate එකතු කිරීමේදී
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
වෙත
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
......
...
}
මෙම විසඳුම iOS 7/8 සඳහා ක්රියා කරයි
මට නම්, අනෙක් පිළිතුරු වල (සහ වෙනත් ප්රභවයන්ගෙන් / ප්රලේඛන වලින්) සියල්ල භාවිතා කිරීමෙන් කිසිවක් සිදු නොවීය. උදව් කළේ XIB හි සංචාලන තීරු විලාසය "කළු" ලෙස සැකසීමයි. මෙය කිසිදු කේතයක් නොමැතිව පෙළ සුදු බවට වෙනස් කළේය.
ඒ කිසිවක් මට වැඩ කළේ නැත, එබැවින් මෙන්න වැඩ කරන විසඳුමක් ...
තුළ Info.plist
, පේළියක් එක් කරන්න:
UIViewControllerBasedStatusBarAppearance
, සහ අගය සකසන්න NO
.
ඉන්පසු AppDelegate in didFinishLaunchingWithOptions
, මෙම පේළි එක් කරන්න:
[application setStatusBarHidden:NO];
[application setStatusBarStyle:UIStatusBarStyleLightContent];
මේ සඳහා ඔබට කිසිදු කේතයක් කිරීමට අවශ්ය නැත
Info.plist හි "පාලක පාදක තත්ව තීරු පෙනුම" යතුර පහත පරිදි එකතු කළ යුතුය:
සහ එහි අගය වර්ගය බූලියන් ලෙස සහ අගය NO ලෙස සකසන්න. ඉන්පසු ව්යාපෘති සැකසීම් මත ක්ලික් කරන්න, ඉන්පසු සාමාන්ය ටැබ් එක මත ක්ලික් කරන්න සහ යෙදවුම් තොරතුරු යටතේ කැමති තත්ව තීරු විලාසය සකසන්න .ලයිට් පහත පරිදි:
ඒක තමයි.
පහත සඳහන් පියවර දෙකක් පමණි:
පියවර 1:
හි තොරතුරු පටිත්ත යටතේ project target
, පේළිය එක් කරන්න:
UIViewControllerBasedStatusBarAppearance
, අගය නියම කරන්න NO
.
පියවර 2:
ව්යාපෘතියේ AppDelegate.m
:
- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
…
[application setStatusBarStyle:UIStatusBarStyleLightContent];
…
}
මෙය ගෝල්ඩන් මාස්ටර් iOS 7 සහ එක්ස්කෝඩ් 5 ජීඑම් බීජ සහ iOS7 එස්ඩීකේ 2013 සැප්තැම්බර් 18 වන දින නිකුත් කරන ලදි (අවම වශයෙන් සංචාලන පාලකය සඟවා ඇත):
සකසන්න the UIViewControllerBasedStatusBarAppearance
කිරීමට NO
තුළ
Info.plist
.
දී ViewDidLoad
ක්රමය හෝ ඔබ වෙනස් තත්ව තීරුව ශෛලිය ඕනෑ කොහෙද? ඕනෑම තැනක,:
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
ඔබේ UIViewController UINavigationController තුළ තිබේ නම් ඔබට BarStyle සැකසිය යුතුය:
-[UINavigationBar setBarStyle:UIBarStyleBlack]
මුල් පිළිතුර මෙහි ඇත
ඔබට අතුරුමුහුණත් හරහා සාදන ලද කාවැද්දූ සංචාලන පාලකයක් තිබේ නම් , ඔබේ සංචාලන පාලකය කළමනාකරණය කරන පන්තියක පහත සඳහන් දෑ සැකසීමට වග බලා ගන්න:
-(UIStatusBarStyle)preferredStatusBarStyle{
return UIStatusBarStyleLightContent;
}
ඔබට අවශ්ය වන්නේ එය පමණි.
IOS 7 යෙදුමක් සඳහා මම ස්විෆ්ට් ව්යාපෘතියක Xcode 6 බීටා 5 භාවිතා කරමි .
මෙන්න මම කළ දේ, එය ක්රියාත්මක වේ:
info.plist:
AppDelegate.m හි, පහත සඳහන් දෑ එක් කරන්න.
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
}
ලැයිස්තු ගොනුවේ, 'පාලක පාදක තත්ව තීරු පෙනුම බලන්න' යන්න NO ලෙස සකසන්න.
Appdelegate හි සරලව
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
හොඳයි, මේක ඇත්තටම මට කේක් කෑල්ලක් වගේ වැඩ කරනවා.
ඔබගේ යෙදුමට යන්න info.plist
.
View controller-based status bar appearance
කිරීමටNO
Status bar style
කිරීමටUIStatusBarStyleLightContent
ඉන්පසු ඔබගේ යෙදුමේ නියෝජිතයා වෙත ගොස් ඔබේ කවුළුවල 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];
}
බිංගෝ. ඒක මට වැඩක්.
View controller-based status bar appearance equal
ලෙස සැකසූ දෙවන කොටස NO
වූයේ මා අතපසු වූ කොටසයි . ස්තූතියි
පියවර 2 කින් ස්විෆ්ට් 3 හි ඉතා පහසුය. ඔබගේ info.plist වෙත ගොස් යතුර View controller-based status bar appearance
"නැත" ලෙස වෙනස් කරන්න. ඉන්පසු Appdelegate හි මෙම රේඛාව didfinishlaunchingwithoptions ක්රමයට එක් කරන්න
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
UIApplication.shared.statusBarStyle = .lightContent
return true
}
මෙය iOS9 හි ඉවත් කර ඇත. දැන් ඔබ කළ යුත්තේ rootviewcontroller හි මෙම දේපල අභිබවා යාමයි
මෙය iOS 9 හි අතහැර දමා ඇත. මෙය rootviewcontroller හි කළ යුතුය
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
ඇපල් සංවර්ධක ප්රලේඛනය මගින් විස්තර කර ඇති පරිදි, තත්ව තීරුවේ පෙනුම තීරණය කිරීමට iOS 7 තනි දර්ශන පාලකයන්ට ඉඩ දෙයි:
යෙදුම ක්රියාත්මක වන විට තත්ව තීරුවේ ශෛලිය සැකසීමේ හැකියාව iOS 7 දර්ශන පාලකයන්ට ලබා දෙයි. තත්ව තීරු විලාසය ගතිකව වෙනස් කිරීමට හොඳ ක්රමයක් නම් ක්රියාත්මක කිරීම
preferredStatusBarStyle
සහ සජීවිකරණ වාරණයක් තුළ the තත්ව තීරුවේ පෙනුම සහ ඇමතුම යාවත්කාලීන කිරීමයිsetNeedsStatusBarAppearanceUpdate
.
ගෝලීය වශයෙන් තත්ව තීරුවේ පෙනුම සැකසීම පියවර දෙකක ක්රියාවලියකි.
පළමුවෙන්ම, ඔබට දර්ශන තලයේ පෙනුම බැලීමේ පදනම මත සැකසීමට අවශ්ය නැති බව ඔබට iOS වෙත පැවසිය යුතුය.
එවිට ඔබ වගකීම භාරගෙන නව ගෝලීය තත්ව තීරු විලාසය සැකසිය යුතුය.
බැලීමෙන් බැලීමේ තත්ව තීරු පාලනය අක්රිය කිරීමට, ඔබට View controller-based status bar appearance
දේපල සැකසිය යුතුයInfo.plist
.
ව්යාපෘති නැවිගේටරය විවෘත කර ඔබගේ iOS යෙදුම සඳහා ව්යාපෘතිය තෝරන්න, පසුව තොරතුරු පටිත්ත තෝරන්න.
පේළියක සැරිසරන්න, ඉන්පසු ඔබට නව දේපලක් එක් කිරීමට පෙනෙන ප්ලස් ලකුණ ක්ලික් කරන්න .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/
අමතර යමක් කිරීමට අවශ්ය නැත, මෙම කේතය ඔබේ දර්ශන පාලකයේ ලියා ස්ථායී තීරු වර්ණය සුදු පැහැයක් ගන්න
- (UIStatusBarStyle)preferredStatusBarStyle{return UIStatusBarStyleLightContent;}
Xcode GM බීජ සඳහා පිළිතුර යාවත්කාලීන කරන ලදි:
දී Info.plist
Put View controller-based status bar appearance
ලෙසNO
ව්යාපෘතියේ, සකසන්න:
ViewDidLoad හි:
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
මම හිතන්නේ සියලුම පිළිතුරු ඇත්ත වශයෙන්ම ගැටලුව යොමු නොකරයි, මන්ද ඒවා සියල්ලම විශේෂිත අවස්ථා වල ක්රියාත්මක වන බැවිනි. නමුත් ඔබට සියලු අවස්ථා ආවරණය කිරීමට අවශ්ය නම් කරුණු පහත දැක්වේ.
ඔබට අවශ්ය වන්නේ තත්ව තීරු ආලෝක ශෛලිය මත පදනම්ව මෙම කරුණු 3 නිතරම මතකයේ තබා ගත යුතුය:
1) ඔබට දියත් කිරීමේ තිරයේ හෝ වෙනත් ස්ථානයක තත්ව තීරුව අවශ්ය නම්, ඔබට එය පාලනය කළ නොහැකි (දර්ශන පාලකයන් තුළ නොව, පද්ධති පාලනය කරන සමහර අංග / දියත් කිරීමේ තිරය වැනි අවස්ථා) ඔබ ඔබේ ව්යාපෘති සැකසුම් වෙත යන්න
2) ඔබට සංචාලන පාලකයක් තුළ පාලකයක් තිබේ නම් ඔබට එය අතුරු මුහුණත සාදන්නා තුළ පහත පරිදි වෙනස් කළ හැකිය:
අ) ඔබේ සංචාලන පාලකයේ සංචාලන තීරුව තෝරන්න
b) ඉන්පසු සංචාලන තීරුවේ ශෛලිය "කළු" ලෙස සකසන්න, මන්ද මෙයින් අදහස් කරන්නේ ඔබේ තත්ව තීරුව යටතේ "කළු" -> අඳුරු පසුබිමක් ඇති බැවින් එය තත්ව තීරුව සුදු පැහැයට සකසනු ඇති බවයි.
නැතහොත් එය පහත පරිදි කේතයෙන් කරන්න
navigationController?.navigationBar.barStyle = UIBarStyle.Black
3) ඔබට පාලකය තනිවම තිබේ නම් එයටම ආවේණික තීරු ශෛලියක් තිබිය යුතු අතර එය UINavigationController ලෙස සමහර බහාලුම් ව්යුහයට ඇතුළත් කර නොමැත.
පාලකය සඳහා කේත තීරුවේ තත්ව තීරු විලාසය සකසන්න:
සරලව ඇමතීම
[[UINavigationBar appearance] setBarStyle:UIBarStyleBlack];
තුළ
-(BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
}
AppDelegate
iOS7 හි මගේ කෘතිවල ක්රමය මට විශිෂ්ටයි.
View controller-based status bar appearance = NO
මෙය iOS 7 UI සංක්රාන්ති මාර්ගෝපදේශයෙහි ලේඛනගත කර ඇති අතර, ඔබට කෙලින්ම ප්රවේශ වීමට ඇපල් සංවර්ධක හැඳුනුම්පතක් අවශ්ය වේ. අදාළ උපුටා ගැනීම:
තත්ව තීරුව පාරදෘශ්ය බැවින් එය පිටුපස ඇති දර්ශනය පෙන්නුම් කරයි. [...]
UIStatusBarStyle
තත්ව තීරුවේ අන්තර්ගතය අඳුරු හෝ සැහැල්ලු විය යුතුද යන්න සඳහන් කිරීමට නියතයක් භාවිතා කරන්න :
UIStatusBarStyleDefault
අඳුරු අන්තර්ගතය පෙන්වයි. [...]
UIStatusBarStyleLightContent
සැහැල්ලු අන්තර්ගතය පෙන්වයි. තත්ව තීරුව පිටුපස අඳුරු අන්තර්ගතයන් ඇති විට භාවිතා කරන්න.
උනන්දුවක් දැක්විය හැකි:
IOS 7 හි, ඔබට තනි වීව් පාලකයෙකුගෙන් තත්ව තීරුවේ ශෛලිය පාලනය කළ හැකි අතර යෙදුම ක්රියාත්මක වන විට එය වෙනස් කළ හැකිය. මෙම හැසිරීම තෝරා
UIViewControllerBasedStatusBarAppearance
ගැනීමට, යෙදුමකInfo.plist
ගොනුවකට යතුර එකතු කර එහි අගය දෙන්නYES
.
ඔබගේ ඇපල් සංවර්ධක හැඳුනුම්පත සමඟ නැවත පිවිසිය හැකි ලේඛනය දෙස බැලීමට මම අනිවාර්යයෙන්ම නිර්දේශ කරමි.
මෙන්න තත්ව තීරුව වෙනස් කිරීම පිළිබඳ ඇපල් මාර්ගෝපදේශ / උපදෙස් . තත්ව තීරුවේ අවසර දී ඇත්තේ අඳුරු සහ ආලෝකය (අතර & කළු) පමණි.
මෙන්න - තත්ව තීරු විලාසය වෙනස් කරන්නේ කෙසේද:
ඔබ මාලාවක් තත්ව තීරුව ශෛලිය කිරීමට අවශ්ය නම්, යෙදුම් මට්ටම ය අනතුරුව UIViewControllerBasedStatusBarAppearance
කිරීමට NO
ඔබේ '.plist' ගොනුවේ.
තත්ව තීරු ශෛලිය සැකසීමට ඔබට අවශ්ය නම්, පාලක මට්ටමින් මෙම පියවර අනුගමනය කරන්න:
UIViewControllerBasedStatusBarAppearance
කිරීමට YES
තුළ.plist
ඔබ UIViewController මට්ටමේ පමණක් කට්ටලයක් තත්ව තීරුව ශෛලිය කිරීමට අවශ්ය නම්, ගොනු.ViewDidLoad add function - setNeedsStatusBarAppearanceUpdate
ඔබගේ දර්ශන පාලකයේ කැමති ස්ටේටස්බාර්ස්ටයිල් අභිබවා යන්න.
-
override func viewDidLoad() {
super.viewDidLoad()
self.setNeedsStatusBarAppearanceUpdate()
}
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
තත්ව තීරු ශෛලියේ සැකසුම් මට්ටමට අනුව .plist හි අගය සකසන්න.
යෙදුම් දියත් කිරීමේදී හෝ ඔබගේ දර්ශන පාලකයේ viewDidLoad අතරතුරදී තත්ව තීරුව සඳහා පසුබිම් වර්ණය වෙනස් කිරීමට / සැකසීමට සමහර උපක්රම මෙන්න.
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
}
}
ප්රති result ලය මෙන්න:
මම සමහර දේවල් වෙනස් ලෙස කළ අතර එය මට වැඩ කරයි.
කේතයේ කිසිදු වෙනසක් නොමැතිව, මම මගේ .plist ගොනුව මේ ආකාරයට වින්යාස කළෙමි:
එය උපකාරී වේ යැයි මම බලාපොරොත්තු වෙමි.
එක් එක් දර්ශන පාලකය සඳහා මම ස්ටෝරිබෝඩ් එකේ “තත්ව තීරුවේ” අනුකම්පිත ප්රමිතික දේපල “අනුමාන” සිට “සැහැල්ලු අන්තර්ගතය” දක්වා වෙනස් කරමි.
ඔබට තවමත් View controller-based status bar appearance
ඔව් ලෙස සකසා ඇති info.plist හි භාවිතා කිරීමට අවශ්ය නම් , එයින් අදහස් කරන්නේ ඔබට එක් එක් දර්ශන පාලකය සඳහා තත්ව තීරුව වෙනස් කළ හැකි බවයි, ViewDidLoad හි තත්ව තීරුවේ සුදු පා text සඳහා පහත සඳහන් දෑ භාවිතා කරන්න:
[[[self navigationController] navigationBar] setBarStyle:UIBarStyleBlackTranslucent];
සාරාංශ කිරීමට, ඔබේ ව්යාපෘතිය සංස්කරණය Info.plist
කර එකතු කරන්න:
View controller-based status bar appearance
: NO
Status bar style
: Opaque black style
හෝ ඔබට අමු යතුරක් / වටිනාකමක් තිබේ නම්
UIViewControllerBasedStatusBarAppearance
: NO
UIStatusBarStyle
: Opaque black style
preferredStatusBarStyle
එය ගෝලීයව වින්යාසගත කළ හැකි බැවින් භාවිතා කිරීමට වඩා අඩු
info.plist දී ක්ෂේත්රයේ අගය නැත සකස් දැක්ම පාලකය මත පදනම් තත්ව තීරුව පෙනුම සහ කුලකය තත්වතීරුව > සාමාන්ය සැකසුම ඉලක්කය විලාසිතා ආලෝකය.