per - swift ios html
Come nascondo la barra di stato in un'app Swift iOS? (14)
- Vai al file Info.plist
- Passa il mouse su una di queste righe e verrà visualizzato un pulsante (+) e (-).
- Fare clic sul pulsante più per aggiungere una nuova chiave Digitare all'inizio con V maiuscola e automaticamente la prima scelta sarà Visualizza aspetto barra di stato basata su controller.
- Aggiungilo come KEY.
- Imposta il VALUE su "NO"
- Vai a te AppDelegate.swift
Aggiungi il codice, all'interno del metodo
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject:AnyObject]?) -> Bool { application.statusBarHidden = true return true }
FATTO! Esegui la tua app e non più la barra di stato!
Mi piacerebbe rimuovere la barra di stato nella parte superiore dello schermo.
Questo non funziona:
func application
(application: UIApplication,
didFinishLaunchingWithOptions launchOptions: NSDictionary?)
-> Bool
{
application.statusBarHidden = true
return true
}
Ho anche provato:
func application
(application: UIApplication,
didFinishLaunchingWithOptions launchOptions: NSDictionary?)
-> Bool
{
self.window = UIWindow(frame: UIScreen.mainScreen().bounds)
var controller = UIViewController()
application.statusBarHidden = true
controller.setNeedsStatusBarAppearanceUpdate()
var view = UIView(frame: CGRectMake(0, 0, 320, 568))
view.backgroundColor = UIColor.redColor()
controller.view = view
var label = UILabel(frame: CGRectMake(0, 0, 200, 21))
label.center = CGPointMake(160, 284)
label.textAlignment = NSTextAlignment.Center
label.text = "Hello World"
controller.view.addSubview(label)
self.window!.rootViewController = controller
self.window!.makeKeyAndVisible()
return true
}
È possibile utilizzare questo codice nell'ambito della Class
ViewController
open override var prefersStatusBarHidden: Bool { return true }
Dovresti davvero implementare prefersStatusBarHidden sui tuoi controller di visualizzazione:
rapido 2
override func prefersStatusBarHidden() -> Bool {
return true
}
rapido 3 e successivo
override var prefersStatusBarHidden: Bool {
return true
}
Giusto per aggiungere, quando si prefersStatusBarHidden
override del metodo o della variabile prefersStatusBarHidden
, l' View controller-based status bar appearance
in Info.plist deve essere YES, altrimenti l'override non avrà alcun effetto
Nel mio caso, stavo cercando la barra di stato da nascondere / mostrare su richiesta; invece di quando la vista si carica o scompare.
rapido 3.x
//show status bar initially
var showStatusBar = true
//set the parameters
override var prefersStatusBarHidden: Bool {
if showStatusBar == true {
//does not prefer status bar hidden
print("does not prefer status bar hidden")
return false
} else {
//does prefer status bar hidden
print("does prefer status bar hidden")
return true
}
}
//ex: hide status bar and call parameter function again whenever you want
showStatusBar = false
setNeedsStatusBarAppearanceUpdate()
Nel tuo progetto-> Generale-> Informazioni sulla distribuzione
Stato della barra di stato: -
appena segnato Nascondi barra di stato (iOS 10)
Quindi il problema qui in realtà non ha nulla a che fare con Swift, ma solo come l'aspetto della barra di stato viene gestito da iOS 7.
Per impostazione predefinita, i controller di visualizzazione controllano singolarmente l'aspetto della barra di stato quando sono sullo schermo. Se si desidera utilizzare questo metodo di controllo della barra di stato, è possibile sovrascrivere i metodi seguenti per qualsiasi controller di visualizzazione che si desidera modificare l'aspetto per:
prefersStatusBarHidden
, preferredStatusBarStyle
, preferredStatusBarAnimation
,
Nel tuo caso, dovresti semplicemente implementare prefersStatusBarHidden
e restituire true
.
L'altro modo sarebbe controllare l'aspetto della barra di stato a livello di applicazione. Questo sembra essere ciò che stai effettivamente cercando di fare (impostando application.statusBarHidden
).
Per fare in modo che funzioni, è necessario aprire il file Info.plist
dell'app e aggiungere la chiave UIViewControllerBasedStatusBarAppearance
e assegnargli un valore NO
.
Se si desidera nascondere e riportare la barra di stato sul pulsante , è possibile utilizzare questo metodo: -
Per nascondere la barra di stato: -
UIApplication.shared.keyWindow?.windowLevel = UIWindowLevelStatusBar
Per riportare la barra di stato: -
UIApplication.shared.keyWindow?.windowLevel = UIWindowLevelNormal
Swift 4
//MARK:- Show Status Bar
UIApplication.shared.isStatusBarHidden = true
//MARK:- Hide Status Bar
UIApplication.shared.isStatusBarHidden = false
Una soluzione che funziona per me; se si desidera nascondere la barra di stato su un controller di visualizzazione specifico durante il caricamento:
import UIKit
class ViewController: UIViewController {
private var hideStatusBar: Bool = false
override var prefersStatusBarHidden: Bool {
return hideStatusBar
}
override var preferredStatusBarUpdateAnimation: UIStatusBarAnimation {
return UIStatusBarAnimation.slide
}
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundcolor = .white
hideStatusBar = true
UIView.animate(withDuration: 0.3) {
self.setNeedsStatusBarAppearanceUpdate()
}
}
Attenzione: se si imposta la chiave " Visualizza aspetto barra di stato basata su controller " su " NO " nel file info.plist, il codice riportato sopra non funziona. Dovresti impostare la chiave su " SÌ " o rimuoverla da info.plist
Swift 3
In Info.plist
set View controller-based status bar appearance
NO
E chiama UIApplication.shared.isStatusBarHidden = true
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(true);
navigationController?.navigationBar.hidden = true // for navigation bar hide
UIApplication.sharedApplication().statusBarHidden=true; // for status bar hide
}
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
application.isStatusBarHidden = true
return true
}